Description
Anacron est un ordonnanceur de commandes périodiques. Il exécute des commandes à intervalles spécifiées par jours. À la différence de cron, il n’a pas besoin que le système fonctionne en continue. Il peut toutefois être utilisé pour contrôler l’exécution de travaux quotidiens, hebdomadaires et mensuels (ou toute autre période de n jours), sur des systèmes qui ne fonctionnent pas 24 heures par jour. Quand il est installé et configuré proprement, Anacron s’assurera que les commandes soient exécutées aux intervalles spécifiées aussi précisément que le permet la disponibilité de la machine.
Ce que ne fait pas Anacron : Anacron n’essaie pas de faire un cron redondant. Il ne peut être utilisé pour programmer des commandes à des intervalles plus petites que la journée. Il ne garantit pas que les commandes seront exécutées à heure ou jour spécifique. Ce n’est pas un démon à plein temps. Il est exécuté depuis des scripts de démarrage, des travaux cron, ou explicitement.
Installation
Installez
le
paquet anacron
.
Ce dernier est souvent utilisé en tant qu’administrateur. On rajoute dans
ce cas les tâches à effectuer dans le fichier /etc/anacrontab
puis on
le lance à chaque démarrage avec une nouvelle entrée dans /etc/rc.local
:
/usr/local/sbin/anacron -ds
Ce n’est pas très intéressant sur une machine de bureau où l’on peut vouloir lancer des commandes spécifiques aux utilisateurs (pour utiliser les clés ssh par exemple).
Configuration
On crée le fichier ~/.anacron/anacrontab
:
$ mkdir -p ~/.anacron/
$ vi ~/.anacron/anacrontab
On écrit dans ce fichier sur chaque ligne les tâches à lancer régulièrement :
# period delay job-identifier command
# sauvegarde des cours
# <Tous les n jours> <séparé de 10 minutes avec les autres tâches> <nom de la tâche> <commande à lancer>
1 10 educ /home/xavier/geek/bin/sauvegarde/synccours
# sauvegarde des documents
7 10 backup /home/xavier/geek/bin/sauvegarde/backup_home
#sauvegarde du serveur web
7 10 webbackup /home/xavier/geek/bin/sauvegarde/savewww
Notez qu’inscrire 1
en premier revient à écrire @daily
pour lancer
la commande chaque jour, et 7
à @weekly
pour la lancer de façon
hebdomadaire.
Afin d’avoir les droits de lancer anacron en tant qu’utilisateur et
écrire dans la file d’attente, on peut s’ajouter dans le groupe wheel
.
Il existe peut-être une meilleure solution, comme définir un emplacement
de file d’attente différent que celui par défaut, mais je ne l’ai pas
encore trouvé.
# usermod -G wheel jdoe
On donne les droits pour le groupe wheel d’écrire dans la liste d’attente :
# chmod g+xrw /var/spool/anacron
Enfin, pour lancer anacron à chaque démarrage, on peut mettre dans le
fichier ~.profile
ceci :
/usr/local/sbin/anacron -s -t ~/.anacron/anacrontab
Historique
J’ai écrit historiquement cette documentation de manière collaborative sur le wiki de la communauté “OpenBSD Pour Tous”.