Les deux cron
et anacron
sont des démons qui peuvent planifier l'exécution de tâches récurrentes à un certain moment défini par l'utilisateur.
La principale différence entre cron
et anacron
est que le premier suppose que le système fonctionne en continu. Si votre système est hors tension et que vous avez planifié un travail pendant cette période, le travail n'est jamais exécuté.
D'un autre côté, il anacron
est «anachronique» et est conçu pour les systèmes qui ne fonctionnent pas 24h / 24 et 7j / 7. Pour que cela fonctionne, il anacron
utilise des fichiers horodatés pour savoir quand la dernière fois ses commandes ont été exécutées. Il conserve également un fichier /etc/anacrontab
comme il le cron
fait. De plus, cron.daily
fonctionne anacron tous les jours. Par conséquent, anacron
ne peut exécuter un travail qu'une fois par jour, mais cron
peut s'exécuter aussi souvent que toutes les minutes.
De man anacrontab
:
Une fois exécuté, Anacron lit une liste de travaux à partir d'un fichier de configuration, normalement / etc / anacrontab (voir anacrontab (5)). Ce fichier contient la liste des travaux contrôlés par Anacron. Chaque entrée de travail spécifie une période en jours, un délai en minutes, un identifiant de travail unique et une commande shell.
Pour chaque travail, Anacron vérifie si ce travail a été exécuté au cours des n derniers jours, où n est la période spécifiée pour ce travail. Sinon, Anacron exécute la commande shell du travail, après avoir attendu le nombre de minutes spécifié comme paramètre de délai.
Une fois la commande terminée, Anacron enregistre la date dans un fichier d'horodatage spécial pour ce travail, afin qu'il puisse savoir quand l'exécuter à nouveau. Seule la date est utilisée pour les calculs d'heure. L'heure n'est pas utilisée.
Cela signifie que si une tâche est planifiée pour être exécutée quotidiennement et que l'ordinateur a été éteint pendant cette période, lorsque anacron est exécuté, il peut voir que la tâche a été exécutée pour la dernière fois il y a plus de 24 heures et exécuter la tâche correctement.
Par exemple, si vous spécifiez les éléments suivants dans /etc/anacrontab
:
7 15 test.daily /bin/sh /home/username/script.sh
et le jour où le script.sh
travail est censé être exécuté, si le système n'est pas en cours d'exécution, anacron
il s'exécutera dans les script.sh
15 minutes suivant le redémarrage du système.
Peu de référence:
anacron
tous mes VPS car ce sont des systèmes toujours actifs. (Je ne sais pas comment il y est arrivé en premier lieu, je n'en avais pas entendu parler.) Mescrontab
entrées (quotidiennes, hebdomadaires, ...) fonctionnent toutes aux heures prévues.