Ceci est une ancienne révision du document !



Anacron

Anacron est utilisé pour exécuter des commandes, scripts ou programmes périodiquement, avec une fréquence spécifiée en jours.

Contrairement à cron, il ne part pas du principe que la machine fonctionne en continu. Il peut donc être utilisé sur des machines qui ne fonctionnent pas en permanence pour planifier des tâches quotidiennes, hebdomadaires ou mensuelles.

Anacron exécute la liste des tâches présentes dans le fichier de configuration /etc/anacrontab configuration. Chaque ligne de ce fichier spécifie une période n en jours, un délai d en minutes, un identifiant unique et une commande à exécuter. ​ Pour chaque tâche, anacron vérifie si elle a été exécutée au cours des n derniers jours. Si une tâche n'a pas été exécutée depuis n jours ou plus, anacron exécute la commande indiquée après d minutes. Après exécution, un horodatage dans un fichier spécial pour chaque tâche permet à anacron de savoir quand il devra l'exécuter à nouveau.

Pour qu'anacron puisse fonctionner il faut qu'il soit lui même lancé à intervalles réguliers.
Il est donc installé avec un une tâche cron (voir /etc/cron.d/anacron) qui le lance toutes les heures de 7h30à 20h30. À l'heure actuelle cette planification est de fait assurée par un service et un « timer » systemd (voir systemctl cat anacron.timer).

Le programme anacron est normalement installé par défaut sur Ubuntu en version « desktop ». Si ce n'est pas le cas, il suffit d'installer le paquet anacron

Avec les droits d'administration, ouvrir le fichier /etc/anacrontab :

sudo nano /etc/anacrontab

ou

gedit admin:///etc/anacrontab

(selon votre éditeur de texte favoris).

Ajouter à la fin du fichier votre tâche planifiée, en respectant la syntaxe

intervalle   délai   identifiant   commande

intervalle = nombre de jours entre les lancements ;

délai = nombre de minutes à attendre avent l’exécution de la tâche ;

identifiant = un nom unique de votre choix (sans espace ni barre oblique) ;

commande = une commande bash, le nom d'un programme, d'un script, etc. les espaces vides sont autorisés.

Exemple :

   1	15	sauvegarde		rsync -avz /home/vous/Documents/ root@192.168.0.101:/home/

Avec cette ligne la sauvegarde rsync est lancée tous les jours (intervalle = 1 jour), si l’ordinateur est allumé. Elle sera exécutée 15 minutes après le lancement d'Anacron. Par exemple à 7h45 si l'ordinateur était allumé à 7h30, à 11h45 s'il n’était pas allumé avant 11h30 et ainsi de suite (rappel anacron est lancé automatiquement toutes les heurs de 7h30 à 23h30).

Le fonctionnement d'anacron est contrôlé par le fichier /etc/anacrontab.

Vous pouvez l'examiner⋅:

cat /etc/anacrontab

Vous pouvez le modofier en tant que root :

sudo nano /etc/anacrontab

Voici le contenu par défaut du fichier /etc/anacrontab (sur une jammy 22.04). Il vaut mieux ne pas modifier ces lignes mais vous pouvez en ajouter d'autres en dessous..

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
HOME=/root   # /etc/anacrontab: configuration file for anacron
   
   # See anacron(8) and anacrontab(5) for details.
   
   SHELL=/bin/sh
   PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
   HOME=/root
   LOGNAME=root
   
   # These replace cron's entries
   1	5	cron.daily	 nice run-parts --report /etc/cron.daily
   7	10	cron.weekly	 nice run-parts --report /etc/cron.weekly
   @monthly	15	cron.monthly nice run-parts --report /etc/cron.monthly
LOGNAME=root

# These replace cron's entries
1       5       cron.daily      run-parts --report /etc/cron.daily
7       10      cron.weekly     run-parts --report /etc/cron.weekly
@monthly        15      cron.monthly    run-parts --report /etc/cron.monthly

   

Vous pouvez remarquer que la première ligne va lancer quotidiennement les tâches cron placées sous /etc/cron.daily.
Grâce à Anacron on est sûr que ces tâches seront exécutées une fois dans la journée même si la machine était éteinte à l'heure où elle avaient été définies pour cron.
La seconde ligne est analogue pour les tâches hebdomadaires de cron.

Options de lancement

Normalement vous n'avez besoin d'aucune option : anacron se lance tout seul. Il existe cependant certains options, que vous pouvez appeler pour un fonctionnement adapté à votre besoin.

Pour ce faire, tapez anacron, suivi d'une option (par exemple anacron -T) :

-f : Force l'exécution immédiate des tâches, en ignorant les fichiers dateurs.
-u : Met à jour à la date courante dans les fichiers dateurs des tâches, mais ne lance rien.
-s : Met en série l'exécution des tâches. Anacron ne lancera pas une nouvelle tâche avant que la précédente ne soit terminée.
-n : Lance les tâches tout de suite. Ignore les définitions de délai dans le fichier /etc/anacrontab Cette option implique -s.
-d : N'exécute pas en arrière-plan. Dans ce mode, Anacron enverra les messages d'information vers la sortie d'erreurs, ainsi qu'à syslog. La sortie des tâches est envoyée via un message comme d'habitude.
-q : Supprime les messages destinés à la sortie d'erreurs. Applicable seulement avec -d.
-t anacrontab : Utilise le fichier anacrontab défini, à la place de celui par défaut. Par exemple : anacron -t ~/.anacron/etc/anacrontab
-V : Affiche l'information de version, puis s'arrête.
-h : Affiche un court message d'utilisation, puis s'arrête.
-T : Test la syntaxe de votre anacrontab, et indique les erreurs.

anacron n'est pas lancé si l'ordinateur que vous utilisez n'est pas branché sur secteur. Ainsi, il n'entraîne pas de consommation supplémentaire pour un portable.
  • cron : planifier/programmer des tâches
  • incron : effectuer une action, commande(s), scripts, etc, en cas de modifications de fichiers ou de répertoires donnés
  • fcron : programmer des tâches devant être exécutées

Auteurs : sylvainsjc - christophe c

Contributeurs :

  • anacron.1707496464.txt.gz
  • Dernière modification: Le 09/02/2024, 17:34
  • par bruno