%
Puffy image/svg+xml Puffy 2019-06-14 Stéphane HUC OpenBSD Team Inkscape Puffy OpenBSD https://www.openbsd.org/art4.html English "Puffy", it's a symbol of OpenBSD

anacron : utiliser comme simple utilisateur / OpenBSD

Article publié, le et modifié le
3 minutes de lecture

Cet article contient 449 mots.
Source brute de l'article :
Commit version : 37c457a

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.

Attention

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”.