Je donne une réponse alternative ici même si Trevor a raison.
Le @weeklymot clé cron fait exactement ce qu'il a mentionné. Cependant , la plupart des distributions utilisent run-partspour 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.weeklyfichier 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 crontabau 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.
Un peu pointilleux ici, la section 5 des pages de manuel concerne les formats de fichier et les conventions, donc pas tout à fait la mise en œuvre. Il spécifie le format de fichier et contient souvent des exemples
Steve Buzonas
7 est dimanche? Je pensais que 0 était dimanche? (Et si cela a commencé à 1, je pense que 1 était dimanche.)
felwithe
@felwithe Sunday est à la fois 0 et 7, vous pouvez donc choisir celui qui correspond le mieux au premier jour de la semaine dans votre région (lundi vs dimanche).
László van den Hoek
Je crois que ce qui est faux, alors aide - moi à comprendre: 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-partsne sera jamais réellement exécuté par cron! Au contraire, anacrondoit ê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.weeklyqui signifie que le travail hebdomadaire est exécuté tous les 7 jours avec un délai de 10 minutes.
Gabriel Staples
Mais ... je ne sais pas quand anacron s'exécute ou comment il détermine cela. Le faites vous?
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 * * 000:00 (à n'importe quelle date de n'importe quel mois), tant que c'est dimanche (jour de semaine 0).
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 utilisentrun-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
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 simplementman 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.la source
So the weekly crontab in Ubuntu is run at 6.47am on Sunday
. Ceci est incorrect parce que latest -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 lerun-parts
ne sera jamais réellement exécuté parcron
! Au contraire,anacron
doit être en train de le gérer, non? Le tableau d'Aanacron dans "/ etc / anacrontab" le montre pour hebdomadaire:, ce7 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 source
La réponse réside dans la page de manuel de la crontab elle-même, (
man 5 crontab
):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).la source