Réponses:
Je donne une réponse alternative ici même si Trevor a raison.
Le @weekly
mot clé cron fait exactement ce qu'il a mentionné. Cependant , la plupart des distributions utilisent run-parts
pour exécuter leurs propres fichiers crontab planifiés (sur une base horaire, quotidienne, hebdomadaire et mensuelle) qui n'utilisent pas les mots clés de cron.
Par exemple , Ubuntu a un /etc/cron.weekly
fichier qui contient un fichier distinct pour chaque tâche cron.
Ceci est généralement défini dans /etc/crontab
La version karmique 9.10 d'Ubuntu présente les éléments suivants dans /etc/crontab
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
Donc, le crontab hebdomadaire dans Ubuntu est exécuté à 6 h 47 le dimanche
Remarque: lorsque vous recherchez des pages de manuel pour les implémentations crontab, vous souhaitez utiliser man 5 crontab
au lieu de simplement man crontab
. Ce dernier ne vous donnera que la syntaxe de la commande crontab. Le premier vous donne les détails d'implémentation de crontab.
So the weekly crontab in Ubuntu is run at 6.47am on Sunday
. Ceci est incorrect parce que la test -x /usr/sbin/anacron ||
partie de la commande indique d'exécuter UNIQUEMENT le contenu à droite ||
si "/ usr / sbin / anacron" n'est PAS exécutable ou n'existe pas, pourtant il le fait, donc le run-parts
ne sera jamais réellement exécuté par cron
! Au contraire, anacron
doit être en train de le gérer, non? Le tableau d'Aanacron dans "/ etc / anacrontab" le montre pour hebdomadaire:, ce 7 10 cron.weekly run-parts --report /etc/cron.weekly
qui signifie que le travail hebdomadaire est exécuté tous les 7 jours avec un délai de 10 minutes.
@weekly est l'équivalent de: 0 0 * * 0
Il se déroulera donc à 00h00 le dimanche.
La réponse réside dans la page de manuel de la crontab elle-même, ( man 5 crontab
):
Ces «surnoms» de spécification d'heure spéciale sont pris en charge, qui remplacent les 5 champs d'heure et de date initiaux et sont précédés du caractère «@»:
@reboot : Run once after reboot. @yearly : Run once a year, ie. "0 0 1 1 *". @annually : Run once a year, ie. "0 0 1 1 *". @monthly : Run once a month, ie. "0 0 1 * *". @weekly : Run once a week, ie. "0 0 * * 0". @daily : Run once a day, ie. "0 0 * * *". @hourly : Run once an hour, ie. "0 * * * *".
Donc, c'est 0 0 * * 0
00:00 (à n'importe quelle date de n'importe quel mois), tant que c'est dimanche (jour de semaine 0).