Cron scheduling: O argumento da hora está no formato 24h?

10

Para executar o cron à noite, às 4h, preciso escrever 4 * * * *?

E para correr às 16h, deveria ser 16 * * * *?

aneuryzm
fonte
Como o Google ainda está abordando esse tópico, novos visitantes podem querer saber sobre www.cronsandbox.com, onde você pode experimentar os diferentes valores de tempo e ver uma programação.
Art Stanmore
Infelizmente, parece que www.cronsandbox.com não existe mais.
Jordan

Respostas:

13

Não. Isso ocorria no 4º e no 16º minuto de cada hora.

Você está procurando:

0 4,16 * * * command

Isso ocorrerá às 4h e 16h.

Ou se os dois comandos forem diferentes:

0 4 * * * command
0 16 * * * another_command
  1. A primeira coluna define os minutos. Nestes exemplos, estou configurando como 0 para que o evento aconteça na hora.

  2. Na próxima coluna, definimos a hora em que você deseja que ela seja executada. Usamos valores absolutos, mas você pode usar */2para "todas as outras horas" etc.

  3. A próxima coluna diz que queremos que isso aconteça todos os dias do mês.

  4. A próxima coluna indica os meses em que isso deve ser acionado (todos neste caso).

  5. A última coluna diz em quais dias da semana isso pode ser ativado. 0-7 (onde 0 e 7 são domingo). *significa que pode ser acionado em qualquer dia da semana.

Oli
fonte
obrigado, resposta completa. Eu também encontrei este artigo que me ajudou muito: thegeekstuff.com/2009/06/15-practical-crontab-examples
aneuryzm
0

Não, isso não está correto. O significado dos campos

* * * * *

para cada slot de asterisco, respectivamente:

  • minuto (0 - 59)
  • hora (0 - 23)
  • dia do mês (1 - 31)
  • mês (1-12)
  • dia da semana (0 - 6) (domingo = 0 ou 7)

Portanto, para as 4 da manhã e as 4 da tarde, você deve usar:

0 4,16 * * *

Se você deixar um slot da mesma forma *que isso significa todas as iterações dessa unidade de tempo, ou seja, a cada hora, diariamente etc.

Aqui, a parte 0 4,16significa que será executado aos 0 minutos das 04:00 e 16:00 (ou seja, 04:00 e 16:00). Se você quiser executá-lo às, digamos 15 minutos das 04:00 às 16:00, em vez disso, altere-o para 15 4,16 * * *(por exemplo, 4:15 e 16:15).

Arthur Knopper
fonte
8
Incorreto. Isso seria executado a cada minuto, durante as 04:00 e 16:00. por exemplo: 04:00, 04:01, 04:02, etc
Oli
Esta resposta deve ser excluída. Agora, essa é uma pergunta famosa e não queremos que as pessoas enviem essa pergunta com respostas incorretas.
fosslinux
@Oli A resposta acabou de ser corrigida.
Melebius