Quel jour / heure commence un cron hebdomadaire?

8

J'ai jeté un œil à l'homme cron mais je n'ai rien trouvé qui m'a aidé :(

Quelqu'un sait?

menthe
la source
C'est plus adapté au superutilisateur, non?

Réponses:

16

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.

Philip Reynolds
la source
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?
Gabriel Staples
8

@weekly est l'équivalent de: 0 0 * * 0

Il se déroulera donc à 00h00 le dimanche.

Trevor Tippins
la source
0

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).

mwfearnley
la source