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
dev_fight
fonte
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.

Bjoern Rennhak
fonte
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.

fedorqui 'Então pare de prejudicar'
fonte
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
xShirase
fonte
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

Mendon Ashwini
fonte
3
"nós" ... quem? qual programa e versão?
Massimo
É diretamente do link: D
Mendon Ashwini
2

Expressão cron de forma legível construtor crontab

Vytautas
fonte
1
Imho, isso não é uma resposta, pois não adiciona nada aqui, nem responde à pergunta aqui de forma alguma.
Pankaj
2

Acho que você gostaria deste site interativo, que muitas vezes me ajuda a criar diretrizes complexas do Crontab: https://crontab.guru/

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

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

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