Como executar o cron uma vez, diariamente às 22h

177

Eu tinha entrado:

* 22 * * * test > /dev/null

No entanto, estou sendo notificado por e-mail que isso está sendo executado a cada minuto. Estou confuso, acho, porque pensei que isso era correto para o que estou querendo.

Benjamin
fonte
3
Este site explicará qualquer cronograma cronológico
Bruno Finger

Respostas:

368

Está rodando a cada minuto da hora 22, eu acho. Tente o seguinte para executá-lo a cada primeiro minuto da hora 22:

0 22 * * * ....
Marc Simon
fonte
Embora a hora 22 pode ser relativamente salvar, por favor considere o primeiro caso de esta questão
Martin Thoma
O @MartinThoma sempre tenta man cronprimeiro; você deve encontrar o que está procurando.
Marc Simon
Lembre-se de verificar a data do sistema; aconteceu comigo definir o crontab para iniciar um trabalho às 22, mas na verdade começou às 23 porque o sistema era UTC (então 22 para o sistema era 23 para mim no GMT).
Nnsense
Votei positivamente nesta resposta, mas sabia esta regra ... de qualquer maneira, eu queria confirmar meu conhecimento silencioso: D
rnrneverdies
154

Aqui estão mais alguns exemplos

  • Execute a cada 6 horas, 46 minutos após a hora:

    46 */6 * * *

  • Execute às 2:10:

    10 2 * * *

  • Duração: 3:15:

    15 3 * * *

  • Execute às 4:20 da manhã:

    20 4 * * *

  • Execute às 5:31 da manhã:

    31 5 * * *

  • Execute às 17:31:

    31 17 * * *

Abdalla Mohamed Aly Ibrahim
fonte
25

Aqui está o que eu olho sempre que estou escrevendo uma nova entrada do crontab:

Para começar a editar do terminal -type:

 zee$ crontab -e

o que você adicionará ao arquivo crontab:

0 22 * * 0  some-user /opt/somescript/to/run.sh

O que significa:

[ 
+ user => 'some-user',      
+ minute => 0’,             <<= on top of the hour.
+ hour => '22',              <<= at 10 PM. Military time.
+ monthday => '*',           <<= Every day of the month*
+ month => '*',              <<= Every month*
+ weekday => ‘*’,            <<= Everyday (0 thru 6) = sunday thru saturday
] 

Além disso, verifique qual shell sua máquina está executando e nomeie o arquivo de acordo ou NÃO será executado.

Verifique o shell com qualquer echo $SHELL ouecho $0

Pode ser "Bourne shell (sh), Bourne shell novamente (bash), Korn shell (ksh)..etc"

zee
fonte
1

A sintaxe para o crontab

* * * * * 

Minute(0-59) Hour(0-24) Day_of_month(1-31) Month(1-12) Day_of_week(0-6) Command_to_execute

Sua sintaxe

* 22 * * * test > /dev/null

seu trabalho será executado a cada minuto às 22:00 hrs durante toda a semana, mês e ano.

adicionar uma opção (0 a 59) no local em que o minuto será executado uma vez às 22:00 horas, durante toda a semana, mês e ano.

0 22 * * * command_to_execute 

Fonte https://www.adminschoice.com/crontab-quick-reference

Magesh Somasundaram
fonte