Planificateur de tâches - Anacron

Anacron est un planificateur de tâches périodiques à destination des machines qui ne fonctionnent pas de manière continue, telles que les ordinateurs de bureau et les PC portables.

A chaque démarrage, anacron lance les tâches dont la périodicité a été atteinte ou dépassée.

1 - Installation

Installer le paquet anacron

# aptitude install anacron

2 - Configuration de base

Chaque tâche à lancer se présente dans le fichier /etc/anacrontab sous la forme d'une ligne comprenant 4 champs séparés par un ou plusieurs espaces

Les exemples suivants sont tirés du fichier /etc/anacrontab initial :

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

Les commandes run-parts lancent les scripts "systèmes" installés dans les répertoires respectifs /etc/cron.daily /etc/cron.weekly et /etc/cron.monthly.

3 - Personnalisation

anacron peut-être utilisé, par exemple, pour exécuter des mises à jour périodiques, par exemple,

Pour cela, ajouter dans /etc/anacrontab, les lignes suivantes :

7       12      updatedb.weekly            updatedb"                  
7 20 command-not-found.weekly update-command-not-found"
7 25 apt-xapian-index.weekly update-apt-xapian-index"
7 30 pepperflash.weekly update-pepperflashplugin-nonfree --install"
7 35 apt-file.weeky apt-file update"

Certaines commandes font partie de la configuration de base de cron (updatedb, update-apt-xapian-index) et seront donc lancées par anacron par l'intermédiaire de cron.daily, cron.weekly, cron.monthly. Elles peuvent ne pas être ajoutées dans anacron.

4 - Utilisation et test

4.1 - Utilisation

# rm /var/spool/anacron/*
# anacron -f

# ls -l /var/spool/anacron/
total 0
-rw------- 1 root root 0 juin 2 22:38 apt-file.weekly
-rw------- 1 root root 0 juin 2 22:38 apt-xapian-index.weekly
-rw------- 1 root root 0 juin 2 22:38 command-not-found.weekly
-rw------- 1 root root 0 juin 2 22:38 cron.daily
-rw------- 1 root root 0 juin 2 22:38 cron.monthly
-rw------- 1 root root 0 juin 2 22:38 cron.weekly
-rw------- 1 root root 0 juin 2 22:38 pepperflash.weekly
-rw------- 1 root root 0 juin 2 22:38 updatedb.weekly

Aucune tâche n'ayant encore été lancée, du fait des temps d'attente, les fichiers sont vides.

# ls -l /var/spool/anacron/
total 20
-rw------- 1 root root 0 juin 2 22:38 apt-file.weekly
-rw------- 1 root root 0 juin 2 22:38 apt-xapian-index.weekly
-rw------- 1 root root 0 juin 2 22:38 command-not-found.weekly
-rw------- 1 root root 9 juin 2 22:43 cron.daily
-rw------- 1 root root 9 juin 2 22:53 cron.monthly
-rw------- 1 root root 9 juin 2 22:48 cron.weekly
-rw------- 1 root root 0 juin 2 22:38 pepperflash.weekly
-rw------- 1 root root 9 juin 2 22:50 updatedb.weekly

Les fichiers modifiés contiennent la date du jour, par exemple :

    # cat /var/spool/anacron/updatedb.weekly
20160602

4.2 - Vérification

Pour vérifier le bon fonctionnement de anacron, on peut demander à anacron d'émettre un courriel par jour, par semaine et par mois,lorsque le système est mis en marche et que les conditions sont réunies. Il est nécessaire de disposer d'un agent de transfert de mail (voir exim). Pour cela ajouter dans anacron.tab, les lignes suivantes :

1 1       test.daily      echo "anacron test.daily" |mail -s "anacron test daily" mon_adresse@mon_hébergeur.org
7 1 test.weekly echo "anacron test.weekly" |mail -s "anacron test weekly" mon_adresse@mon_hébergeur.org
@monthly 1 test.monthly echo "anacron test.monthly" |mail -s "anacron test monthly" mon_adresse@mon_hébergeur.org