Lorsque votre ordinateur est éteint (ou que le démon cron n'est pas en cours d'exécution), les tâches cron ne seront pas démarrées.
Si vous avez des tâches à exécuter ultérieurement, utilisez anacron. Installé par défaut, voir "man anacron", "man anacrontab" ou le fichier / etc / anacrontab pour plus d’informations.
Ubuntu utilise anacron par défaut pour les entrées de crontab dans:
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
en laissant les crontabs restants à la charge du démon principal cron, plus précisément:
/etc/crontab
/etc/cron.d
/var/spool/cron
REMARQUES
Anacron lui-même ne s'exécute pas en tant que démon, mais s'appuie sur les scripts de démarrage du système et s'exécute lui-même.
Sur la boîte Ubuntu 8.04 que je regarde, /etc/init.d/anacron est exécuté au démarrage, puis à nouveau par cron tous les matins à 07h30.
Le fichier README sur /usr/share/doc/anacron/README.gz contient un peu plus d’informations que ce qui est contenu dans les pages de manuel.
EXEMPLES
Pour les travaux simples "quotidiens", "hebdomadaires", "mensuels", placez une copie ou un lien symbolique vers le script dans l'un des répertoires /etc/cron.{daily|weekly|monthly} ci-dessus. Anacron se chargera de l'exécuter quotidiennement / hebdomadairement / mensuellement. Si votre ordinateur est éteint le jour où les scripts "hebdomadaires" sont normalement exécutés, il les exécutera à la prochaine utilisation de l'ordinateur.
Autre exemple, supposons que vous ayez un script ici: /usr/local/sbin/maint.sh
Et vous souhaitez l'exécuter tous les trois jours, l'entrée standard dans / etc / crontab ressemblerait à ceci:
# m h dom mon dow user command
0 0 */3 * * root /usr/local/sbin/maint.sh
Si votre ordinateur n'était pas allumé le 3 du mois à minuit, la tâche ne serait exécutée que le 6 du mois.
Pour que le travail s'exécute à la place le 4 lorsque l'ordinateur est éteint et "manque" l'exécution du 3, vous l'utiliserez dans / etc / anacrontab (n'oubliez pas de supprimer la ligne de / etc / crontab):
# period delay job-identifier command
3 5 maint-job /usr/local/sbin/maint.sh
Le "délai" de "5" ci-dessus signifie que anacron attendra 5 minutes avant d’exécuter ce travail. L'idée est d'empêcher l'anacron de déclencher des choses immédiatement au moment du démarrage.