Gerador de crontab

Escolha Linux, Spring ou Quartz, monte o horário e copie a expressão ou a linha inteira. Explicar uma expressão que já tem

Explicar uma expressão que já tem

Uma linha de crontab a partir de um horário

Esta página monta um crontab Linux: cinco campos, ou um atalho como @daily. Escolhe de quanto em quanto tempo corre, podes juntar o comando e copiar a linha. Não instala a tarefa. Formato também escreve Spring e Quartz: os segundos 0 à frente, e no Quartz um ? com nomes como MON-FRI. Para explicar uma expressão que já tem, use Explicar uma expressão que já tem. As marcas de tempo são marca de tempo Unix.

Como usar

  1. Formato é Linux Crontab (5), Spring @Scheduled (6) ou Quartz (6–7). A linha por baixo do menu diz a ordem dos campos e qual número é o domingo. Horário abre em Todos os dias. Hora é 2 e Minuto é 0, por isso a expressão é 0 2 * * * e a frase diz todos os dias às 02:00.
  2. Horário pode ser A cada minuto, A cada N minutos, A cada hora, A cada N horas, Todos os dias, Dias da semana, Dia do mês, Uma vez por ano ou Atalho (@daily). A cada N minutos mostra A cada e a palavra minutos. A cada hora mostra Minuto. A cada N horas mostra Minuto e A cada, com a palavra horas. Todos os dias mostra Hora e Minuto. Dias da semana mostra Hora, Minuto e os botões de segunda a domingo; pelo menos um tem de estar ligado. Dia do mês mostra Hora, Minuto e Dia. Uma vez por ano também mostra Mês. Atalho lista @reboot, @hourly, @daily, @weekly, @monthly e @yearly. Esses atalhos só aparecem quando Formato é Linux. Spring e Quartz mantêm a mesma hora e acrescentam os segundos.
  3. Comando pode ficar vazio. /usr/bin/backup.sh fica depois da expressão na Linha de crontab. Atualizar ao digitar está ligado. Se o desligares, Gerar corre uma vez.
  4. Copiar expressão copia os cinco campos ou o atalho. Copiar linha copia a expressão mais o comando. Copiar resultado copia a frase e Próximas 10 execuções. Mostrar exemplo põe Dias da semana em segunda–sexta às 02:00 e o comando /usr/bin/backup.sh. A expressão é 0 2 * * 1-5 e a linha 0 2 * * 1-5 /usr/bin/backup.sh. Os botões por baixo do formulário carregam mais: a cada 15 minutos */15 * * * *, todos os dias às 02:00 com o mesmo comando 0 2 * * * /usr/bin/backup.sh, dias úteis às 09:00 0 9 * * 1-5, fim de semana às 09:00 0 9 * * 0,6, segunda quarta e sexta às 09:00 0 9 * * 1,3,5, dia 1 à meia-noite 0 0 1 * *, 1 de janeiro 0 0 1 1 *, a cada 2 horas no minuto 30 30 */2 * * *, @daily, @weekly (domingo às 00:00) e @reboot. A ligação ao lado abre a explicação. Limpar tudo põe A cada minuto e esvazia o comando. A expressão é * * * * *.

O que os campos querem dizer

A expressão é minuto, hora, dia do mês, mês, dia da semana. Domingo é 0, segunda é 1, sábado é 6. Dias seguidos levam um hífen, por isso segunda–sexta é 1-5. Dias separados levam vírgulas, como 1,3,5. Os sete dias passam a *. Formato Linux escreve esses cinco campos. Formato Spring põe 0 à frente para os segundos e mantém os números do dia. Formato Quartz põe 0 à frente, escreve ? no dia ou no dia da semana, e transforma os números em SUN–SAT, porque o Quartz numera o domingo como 1.

A cada N minutos é */N * * * *. A cada N horas é o minuto M das horas 0, N, 2N e por aí: M */N * * *. O dia 31 só corre nos meses que têm 31. Fevereiro é saltado. O comando não é verificado. Fica numa linha. A página não instala a tarefa.

@reboot corre ao arrancar e não tem hora, por isso não há Próximas 10 execuções. @hourly é 0 * * * *. @daily é 0 0 * * *. @weekly é domingo às 00:00, 0 0 * * 0, não segunda. @monthly é 0 0 1 * *. @yearly é 0 0 1 1 *. A frase diz O mesmo que e esses cinco campos. Próximas 10 execuções usa a hora local deste computador. A máquina que corre o crontab pode estar noutro fuso.

Onde se usa

  • Uma cópia todos os dias às 02:00: 0 2 * * * /usr/bin/backup.sh.
  • Um trabalho em dias úteis às 09:00: 0 9 * * 1-5.
  • @daily quando a meia-noite dessa máquina serve.

Perguntas

Porque é que @weekly é domingo?

O Vixie cron define @weekly como domingo às 00:00. Para segunda, escolhe Dias da semana e liga segunda. Se a hora continuar 00:00, a expressão é 0 0 * * 1.

Isto gera uma expressão Quartz?

Sim. Ponha Formato em Quartz. Todos os dias às 02:00 fica 0 0 2 * * ?. Segunda–sexta fica MON-FRI. Explicar uma expressão que já tem continua a ler a expressão que cola.

A próxima execução não bate com UTC.

Próximas 10 execuções usa o relógio deste computador. Um crontab no servidor usa o fuso do servidor.

O dia 31 não aparece em fevereiro.

Esse mês não tem dia 31, por isso é saltado. A lista mostra o próximo mês que tem esse dia.