Cómo ejecutar el trabajo crontab todas las semanas los domingos

263

Estoy tratando de descubrir cómo ejecutar un trabajo crontab todas las semanas los domingos. Creo que lo siguiente debería funcionar, pero no estoy seguro si entiendo correctamente. ¿Es correcto lo siguiente?

5 8 * * 6
dev_fight
fuente
77
La pregunta es sobre 'domingo' pero la respuesta aceptada es sobre 'sábado'. ¿?
inigomedina
11
Use el sitio https://crontab.guru/ para crear cualquier expresión cron.
nbi

Respuestas:

481

Aquí hay una explicación del formato 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

De acuerdo con esto 5 8 * * 0, correría a las 8:05 cada domingo.

Bjoern Rennhak
fuente
148
Para ser más legible, puede usar uno del sun, mon, tue, wed, thu, fri, or satdía. Esto también le ahorra tener que elegir entre usar 0o 7para el domingo.
gripe
193

Para ejecutar un cron el domingo, puede usar cualquiera de estos:

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

Dónde 5 8 encuentra la hora del día en que esto sucederá: 8:05.

En general, si desea ejecutar algo el domingo, asegúrese de que la quinta columna contenga cualquiera de 0, 7o Sun. Tenías 6, así que estaba funcionando el sábado.

El formato para cronjobs es:

 +---------------- 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

Siempre puede usar crontab.guru como editor para verificar sus expresiones cron.

fedorqui 'así que deja de dañar'
fuente
14
¡Solo para ayudar a otros a evitar el tonto error que acabo de cometer, y asegúrese de configurar el minuto en algo diferente a * o se ejecutará cada minuto de esa hora!
user2924019
40

El siguiente es el formato del archivo crontab.

{minuto} {hora} {día del mes} {mes} {día de la semana} {usuario} {path-to-shell-script}

Entonces, para ejecutar cada domingo a la medianoche (el domingo suele ser 0, 7 en algunos casos raros):

0 0 * * 0 root /path_to_command
xShirase
fuente
1
Votar para mencionar cómo especificar el comando para ejecutar cada vez. (Sin embargo, la columna de usuario debe omitirse al editar mediante el comando "crontab").
Joachim Wagner
1
El domingo a medianoche es la 0 hora del lunes, es decir 0 0 * * 1.
Fred Loney
5

Cuando especifique sus valores cron, deberá asegurarse de que sus valores se encuentren dentro de los rangos. Por ejemplo, algunos cron usan un rango de 0-7 para el día de la semana donde tanto 0 como 7 representan el domingo. No lo hacemos (verifique a continuación).

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

referencia: https://github.com/ncb000gt/node-cron

Mendon Ashwini
fuente
3
"Somos nosotros los que ? ¿Qué programa y versión?
Massimo
Es directamente desde el enlace: D
Mendon Ashwini
2

Cron la expresión de trabajo de una manera legible humana constructor crontab

Vitautas
fuente
1
En mi opinión, esta no es una respuesta, ya que no agrega nada aquí, ni responde la pregunta aquí de ninguna manera.
Pankaj
2

Creo que le gustaría este sitio web interactivo, que a menudo me ayuda a construir directivas complejas de Crontab: https://crontab.guru/

jaspe
fuente
0

10 * * * Sol

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
fuente
2
¡Felicitaciones por su primera respuesta en StackOverflow! Asegúrese de consultar la Guía de respuestas . Por ejemplo, la respuesta normalmente debería tener información nueva que falta en las respuestas existentes.
doz10us
77
esto funcionará 24 veces el domingo, 10 minutos después de la hora cada hora.
Jens Timmerman
0

@ semanal funciona mejor para mí! example,add the fellowing crontab -e ,it will work in every sunday 0:00 AM @weekly /root/fd/databasebackup/week.sh >> ~/test.txt

未来 陆家嘴 顶尖 的 投资 人
fuente
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
fuente