Qu'est-ce qu'anacron et en quoi est-il différent de cron ?
Anacron est utilisé pour exécuter des commandes périodiquement, avec une fréquence spécifiée en jours. Contrairement à cron, il ne suppose pas que la machine fonctionne en continu. Par conséquent, il peut être utilisé sur des machines qui ne fonctionnent pas 24 heures sur 24 pour contrôler les travaux réguliers en tant que travaux quotidiens, hebdomadaires et mensuels. Anacron essaie d'exécuter les tâches planifiées aussi près que le temps de disponibilité du système le permet.
fichier de configuration anacron
/etc/anacrontab est le fichier de configuration anacron. Vous trouverez ci-dessous un exemple de fichier anacron non édité :
# cat /etc/anacrontab # /etc/anacrontab: configuration file for anacron # See anacron(8) and anacrontab(5) for details. SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # the maximal random delay added to the base delay of the jobs RANDOM_DELAY=45 # the jobs will be started during the following hours only START_HOURS_RANGE=3-22 #period in days delay in minutes job-identifier command 1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly
Ici :
1. période en jours :précise la fréquence d'exécution d'un job en jours. Cette variable peut être représentée par un entier ou une macro (@daily, @weekly, @monthly), où @daily désigne la même valeur que l'entier 1, @weekly la même que 7 et @monthly spécifie que le travail est exécuté une fois par mois, indépendamment de la durée du mois.
2. délai en minutes :spécifie le nombre de minutes qu'anacron attend, si nécessaire, avant d'exécuter une tâche. Cette variable est représentée par un nombre entier où 0 signifie aucun délai.
3. identifiant de poste :spécifie un nom unique de travail qui est utilisé dans les fichiers journaux.
4. commande :spécifie la commande à exécuter. La commande peut être une commande telle que ps -ef>> /tmp/processes ou une commande pour exécuter un script personnalisé.
Les 3 lignes à la fin des fichiers de configuration sont des tâches cron définies par le système.
1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly
Le reste des variables est expliqué avec un exemple ci-dessous.
Exemple de configuration anacron
Voyons un exemple de configuration d'anacron. Nous créons une tâche anacron pour exécuter quotidiennement un script nommé "daily_job.sh" avec un délai de 35 minutes après le démarrage du système.
# cat /etc/anacrontab RANDOM_DELAY=30 START_HOURS_RANGE=10-18 1 35 daily_job sh /var/tmp/daily_job.sh
Si le système est en cours d'exécution, la tâche s'exécutera selon START_HOURS_RANGE qui est défini dans le fichier /etc/anacrontab. La variable START_HOURS_RANGE définit la plage d'heures pendant lesquelles la tâche planifiée est autorisée à s'exécuter. Dans notre cas, il est 10h. à 18h (10-18)
# grep -i START_HOURS_RANGE /etc/anacrontab START_HOURS_RANGE=10-18
Le RANDOM_DELAY La variable indique le nombre maximum de minutes qui seront ajoutées à la variable de délai en minutes qui est spécifiée pour chaque travail. Un RANDOM_DELAY défini sur 30 ajouterait donc, de manière aléatoire, entre 0 et 30 minutes au délai en minutes pour chaque travail dans cet anacrontab particulier. Lorsqu'il est défini sur 0, aucun délai aléatoire n'est ajouté.
# grep -i RANDOM_DELAY /etc/anacrontab RANDOM_DELAY=30