Comment exécuter le travail crontab chaque semaine le dimanche


263

J'essaie de comprendre comment exécuter un travail crontab chaque semaine le dimanche. Je pense que ce qui suit devrait fonctionner, mais je ne suis pas sûr de bien comprendre. Est-ce que ce qui suit est correct?

5 8 * * 6

7
La question concerne le «dimanche», mais la réponse acceptée concerne le «samedi». ¿?
inigomedina

11
Utilisez https://crontab.guru/ site pour créer n'importe quelle expression cron.
nbi

Réponses:


481

Voici une explication du format crontab.

# 1. Entry: Minute when the process will be started [0-60]
# 2. Entry: Hour when the process will be started [0-23]
# 3. Entry: Day of the month when the process will be started [1-28/29/30/31]
# 4. Entry: Month of the year when the process will be started [1-12]
# 5. Entry: Weekday when the process will be started [0-6] [0 is Sunday]
#
# all x min = */x

Donc, selon cela, vous 5 8 * * 0feriez 8 h 05 tous les dimanches.


148
Pour être plus lisible, vous pouvez en utiliser un sun, mon, tue, wed, thu, fri, or satpour la journée. Cela vous évite également d'avoir à choisir entre utiliser 0ou 7pour dimanche.
grippe

193

Pour faire exécuter un cron dimanche, vous pouvez utiliser l'un des deux:

5 8 * * 0
5 8 * * 7
5 8 * * Sun

5 8se situe l'heure de la journée où cela se produira: 8h05.

En général, si vous voulez exécuter quelque chose le dimanche, assurez-vous simplement que la 5e colonne contient soit 0, 7soit Sun. Vous l'avez fait 6, donc ça fonctionnait samedi.

Le format des cronjobs est le suivant:

 +---------------- minute (0 - 59)
 |  +------------- hour (0 - 23)
 |  |  +---------- day of month (1 - 31)
 |  |  |  +------- month (1 - 12)
 |  |  |  |  +---- day of week (0 - 6) (Sunday=0 or 7)
 |  |  |  |  |
 *  *  *  *  *  command to be executed

Vous pouvez toujours utiliser crontab.guru comme éditeur pour vérifier vos expressions cron.


14
Juste pour aider les autres à éviter l'erreur stupide que je viens de faire et assurez-vous de régler la minute sur autre chose que * ou elle s'exécutera à chaque minute de cette heure!
user2924019

40

Voici le format du fichier crontab.

{minute} {heure} {jour du mois} {mois} {jour de semaine} {utilisateur} {path-to-shell-script}

Donc, pour courir chaque dimanche à minuit (le dimanche est 0 habituellement, 7 dans certains cas rares):

0 0 * * 0 root /path_to_command

1
Vote pour mentionner comment spécifier la commande à exécuter à chaque fois. (La colonne utilisateur, cependant, doit être omise lors de l'édition via la commande "crontab".)
Joachim Wagner

1
Dimanche minuit est l'heure 0 du lundi, c'est-à-dire 0 0 * * 1.
Fred Loney

5

Lorsque vous spécifiez vos valeurs cron, vous devez vous assurer que vos valeurs se situent dans les plages. Par exemple, certains crons utilisent une plage de 0 à 7 pour le jour de la semaine où 0 et 7 représentent dimanche. Nous ne le faisons pas (vérifiez ci-dessous).

Seconds: 0-59
Minutes: 0-59
Hours: 0-23
Day of Month: 1-31
Months: 0-11
Day of Week: 0-6

référence: https://github.com/ncb000gt/node-cron


3
"nous" ... qui? quel programme et quelle version?
Massimo

C'est directement à partir du lien: D
Mendon Ashwini

2

Expression des tâches Cron d'une manière lisible par l'homme Crontab Builder


1
À mon humble avis, ce n'est pas une réponse car il n'ajoute rien ici, ni ne répond à la question ici en aucune façon.
Pankaj


0

10 * * * Soleil

Position 1 for minutes, allowed values are 1-60
position 2 for hours, allowed values are 1-24
position 3 for day of month ,allowed values are 1-31
position 4 for month ,allowed values are 1-12 
position 5 for day of week ,allowed values are 1-7 or and the day starts at Monday. 

2
Félicitations pour votre première réponse sur StackOverflow! Veuillez vous assurer de consulter le Guide de réponse . Par exemple, la réponse doit généralement contenir de nouvelles informations qui manquent dans les réponses existantes.
doz10us

7
cela fonctionnera 24 fois le dimanche, 10 minutes après l'heure toutes les heures.
Jens Timmerman


0
* * * * 0 

you can use above cron job to run on every week on sunday, but in addition on what time you want to run this job for that you can follow below concept :

* * * * *  Command_to_execute
- � � � -
| | | | |
| | | | +�� Day of week (0�6) (Sunday=0) or Sun, Mon, Tue,...
| | | +���- Month (1�12) or Jan, Feb,...
| | +����-� Day of month (1�31)
| +������� Hour (0�23)
+��������- Minute (0�59)
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.