Como executar o trabalho crontab toda semana no domingo


263

Estou tentando descobrir como executar um trabalho de crontab toda semana no domingo. Acho que o seguinte deve funcionar, mas não tenho certeza se entendi corretamente. O seguinte está correto?

5 8 * * 6

7
A pergunta é sobre 'domingo', mas a resposta aceita é sobre 'sábado'. ¿?
precisa saber é o seguinte

11
Use https://crontab.guru/ site para criar qualquer expressão cron.
Nbi 25/01

Respostas:


481

Aqui está uma explicação do 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

Então, de acordo com isso, você 5 8 * * 0executaria 8:05 todo domingo.


148
Para ser mais legível, você pode usar um sun, mon, tue, wed, thu, fri, or satpara o dia. Isso também evita que você precise escolher entre usar 0ou 7para domingo.
flu

193

Para executar um cron no domingo, você pode usar um destes:

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

Onde 5 8fica a hora do dia em que isso acontecerá: 8:05.

Em geral, se você deseja executar algo no domingo, verifique se a quinta coluna contém um de 0, 7ou Sun. Você tinha 6, então estava rodando no sábado.

O formato para cronjobs é:

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

Você sempre pode usar o crontab.guru como um editor para verificar suas expressões cron.


14
Apenas para ajudar outras pessoas a evitar o erro bobo que acabei de cometer e certifique-se de definir o minuto para algo diferente de * ou ele será executado a cada minuto daquela hora!
user2924019

40

A seguir está o formato do arquivo crontab.

{minute} {hour} {dia do mês} {month} {dia da semana} {user} {script do caminho para o shell}

Portanto, para executar todos os domingos à meia-noite (domingo é 0, geralmente 7 em alguns casos raros):

0 0 * * 0 root /path_to_command

1
Votação para mencionar como especificar o comando a ser executado a cada vez. (A coluna usuário, no entanto, precisa ser omitido ao editar através do comando "crontab".)
Joachim Wagner

1
A meia-noite de domingo é a 0 hora da segunda-feira, ou seja 0 0 * * 1.
Fred Loney

5

Ao especificar seus valores cron, você precisará garantir que seus valores estejam dentro dos intervalos. Por exemplo, alguns cron usam um intervalo de 0 a 7 para o dia da semana em que 0 e 7 representam domingo. Nós não (confira abaixo).

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

referência: https://github.com/ncb000gt/node-cron


3
"nós" ... quem? qual programa e versão?
Massimo

É diretamente do link: D
Mendon Ashwini



0

10 * * * dom

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
Parabéns pela sua primeira resposta no StackOverflow! Certifique-se de verificar o Guia de respostas . Por exemplo, a resposta normalmente deve ter algumas informações novas que estão faltando nas respostas existentes.
Doz10us 13/10

7
isso será executado 24 vezes no domingo, 10 minutos após a hora a cada hora.
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)
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.