--- categories: ['OpenBSD','Système','Utilitaire'] date: 2020-01-19T14:35:54+02:00 description: "Utiliser l'ordonnanceur anacron pour gérer des tâches périodiques sous OpenBSD" draft: false include_toc: true show_comments: false tags: ['OpenBSD','anacron'] title: "anacron : utiliser comme simple utilisateur / OpenBSD" translationKey: 'openbsd-anacron' --- ## 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 **{{< inside2 l="sys/openbsd/pkg" t="Installez" a="installer" >}} 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` : ```sh /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` : ```sh $ mkdir -p ~/.anacron/ $ vi ~/.anacron/anacrontab ``` On écrit dans ce fichier sur chaque ligne les tâches à lancer régulièrement : ```cfg # period delay job-identifier command # sauvegarde des cours # 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é. ```sh # usermod -G wheel jdoe ``` On donne les droits pour le groupe wheel d'écrire dans la liste d'attente : ```sh # chmod g+xrw /var/spool/anacron ``` Enfin, pour lancer anacron à chaque démarrage, on peut mettre dans le fichier `~.profile` ceci : ```cfg /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". ---