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
dev_fight
la source
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.

Bjoern Rennhak
la source
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.

fedorqui 'SO arrête de nuire'
la source
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
xShirase
la source
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

Mendon Ashwini
la source
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

Vytautas
la source
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
2

Je pense que vous aimeriez ce site Web interactif, qui m'aide souvent à créer des directives Crontab complexes: https://crontab.guru/

jaspe
la source
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. 
Bachan Joseph
la source
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

@ travail hebdomadaire mieux pour moi! example,add the fellowing crontab -e ,it will work in every sunday 0:00 AM @weekly /root/fd/databasebackup/week.sh >> ~/test.txt

未来 陆家嘴 顶尖 的 投资 人
la source
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)
Siddharth Bhandari
la source