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?
# 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.
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.
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):
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
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.
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
* * * * 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)
Respostas:
Aqui está uma explicação do formato crontab.
Então, de acordo com isso, você
5 8 * * 0
executaria 8:05 todo domingo.fonte
sun, mon, tue, wed, thu, fri, or sat
para o dia. Isso também evita que você precise escolher entre usar0
ou7
para domingo.Para executar um cron no domingo, você pode usar um destes:
Onde
5 8
fica 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
,7
ouSun
. Você tinha6
, então estava rodando no sábado.O formato para cronjobs é:
Você sempre pode usar o crontab.guru como um editor para verificar suas expressões cron.
fonte
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):
fonte
0 0 * * 1
.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).
referência: https://github.com/ncb000gt/node-cron
fonte
Expressão cron de forma legível construtor crontab
fonte
Acho que você gostaria deste site interativo, que muitas vezes me ajuda a criar diretrizes complexas do Crontab: https://crontab.guru/
fonte
10 * * * dom
fonte
@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
fonte