OBSD4* : wiki

anacron : utiliser comme simple utilisateur

Vous connaissez sûrement cron, qui permet de lancer des commandes de façon chronique. Il est très pratique pour réaliser des sauvegardes régulières par exemple. Cependant, il suppose que la machine est allumée 24h/24h, ce qui n'est souvent pas le cas pour un ordinateur de bureau.

Admettons que vous souhaitez sauvegarder vos documents tous les jours à 21h. Cependant, après une grosse journée de travail, vous allez vous écrouler dans votre lit à 20h30 avec les enfants. La sauvegarde ne sera alors pas réalisée. C'est ici qu'intervient l'outil anacron, qui détectera lors du prochain allumage de l'ordinateur que certaines tâches sont à effectuer.

Ce dernier est souvent utilisé en tant que superutilisateur. 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).

Mise en oeuvre

On crée un dossier ~/.anacron dans lequel on crée le fichier 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.

ATTENTION : Les commandes doivent être précisées avec leur chemins complets.

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