Looking for cloud-based phone profiles? Check out our technical analysis of GeeLark. Discover GeeLark

Gerador de expressões cron: crontab, Quartz e Spring

5 (1 avaliações)

Escreva uma expressão cron ou monte-a com os botões abaixo: os campos, a descrição em palavras e as próximas execuções mudam juntos. Tudo acontece no seu navegador: nada é enviado a lugar nenhum.

Fazer a linha do crontab

Adicione um comando e receba a linha inteira para colar em crontab -e, /etc/crontab ou em um painel como o FastPanel.

Escrito como comentário no fim da linha. O FastPanel o mostra como o nome da tarefa. Outros sistemas o ignoram.

Sua linha do crontab, pronta para copiar

A expressão e as escolhas ficam guardadas neste navegador. O comando, a URL e o nome não são salvos, pois podem conter uma chave secreta.

Próximas execuções

O cron usa o fuso horário do servidor. A maioria dos servidores roda em UTC, então confira o fuso horário do seu (o comando date o mostra).

    Outros formatos

    Quartz (Java) e Spring usam seis campos com os segundos na frente. O Quartz também exige um ? em um dos dois campos de dia e numera os dias da semana a partir de 1 (domingo).

    Exemplos de expressões cron

    Clique em uma expressão para colocá-la no construtor.

    Every few minutes

    Every minute
    Every 2 minutes
    Every 5 minutes
    Every 10 minutes
    Every 15 minutes
    Every 30 minutes

    Every few hours

    Every hour, at minute 0
    Every hour, at minute 30
    Every 2 hours
    Every 6 hours
    Every 12 hours

    Every day

    Every day at midnight
    Every day at 3:00, a quiet time for backups
    Every day at 6:00
    Every day at noon
    Every day at 23:30
    Twice a day, at 8:00 and 18:00

    Working days and weekends

    Monday to Friday at 9:00
    Every 15 minutes in working hours, Monday to Friday
    Every Friday at 18:00
    Saturday and Sunday at 10:00
    Every Monday at midnight
    Every Sunday at midnight

    Every month and every year

    The first day of every month
    The 15th day of every month
    The 1st and the 15th day of every month
    Every 3 months, on the first day
    Every 6 months, on the first day
    Once a year, on the 1st of January

    Shortcuts

    Once, when the system starts
    The same as 0 * * * *
    The same as 0 0 * * *
    The same as 0 0 * * 0
    The same as 0 0 1 * *
    The same as 0 0 1 1 *

    Gerador de expressões cron: crontab, Quartz e Spring

    O cron executa comandos em um horário agendado no Linux e em outros sistemas Unix, e o agendamento é escrito como uma expressão cron: cinco campos que indicam o minuto, a hora, o dia, o mês e o dia da semana. Esta página monta essa expressão para você, a conta de volta em palavras simples, mostra os próximos horários em que ela vai rodar e a transforma na forma de seis campos do Quartz e do Spring. Ela também pode escrever a linha inteira do crontab com o seu comando. Tudo acontece no seu navegador.

    Como usar

    1. Digite uma expressão no campo do topo ou monte-a: cada campo tem os botões "Todo", "A cada N", "Valores" e "Intervalo". A expressão, a descrição e as próximas execuções mudam na hora.
    2. Leia a frase abaixo da expressão. Se ela diz o que você queria, o agendamento está certo. Se a expressão estiver errada, a mensagem em vermelho diz qual campo e por quê.
    3. Escolha o fuso horário do seu servidor e veja as próximas dez execuções.
    4. Adicione um comando em "Fazer a linha do crontab" e copie a linha para crontab -e.

    Os cinco campos de uma expressão crontab

    CampoValoresObservações
    Minuto0-59
    Hora0-23Relógio de 24 horas
    Dia do mês1-31
    Mês1-12 ou jan-dec
    Dia da semana0-7 ou sun-sat0 e 7 são ambos domingo

    Uma expressão crontab tem exatamente cinco campos. Uma linha com seis ou sete campos não é um crontab do Linux: é Quartz ou Spring, veja abaixo.

    Caracteres especiais

    • * é todo valor: * * * * * roda a cada minuto.
    • , é uma lista: 0 8,12,18 * * * roda às 8:00, 12:00 e 18:00.
    • - é um intervalo: 0 9-17 * * * roda a cada hora das 9:00 às 17:00.
    • / é um passo: */15 * * * * roda a cada 15 minutos, e 10-40/10 * * * * roda nos minutos 10, 20, 30 e 40.

    Um passo conta a partir do início do intervalo, não do momento em que você salvou o arquivo. */31 * * * * roda nos minutos 0 e 31 de cada hora, ou seja, duas vezes por hora, não a cada 31 minutos. Um passo que não divide o intervalo por igual dá um intervalo menor no fim de cada ciclo.

    Dia do mês e dia da semana: qualquer um dos dois vale

    Quando os dois campos de dia são restritos (nenhum contém *), o cron executa o comando quando qualquer um deles corresponde. Assim, 30 4 1,15 * 5 roda às 4:30 nos dias 1 e 15 de todo mês, e também em toda sexta-feira. Isso não significa "no dia 1 ou 15, se for sexta". Se você precisa disso, coloque uma verificação no comando. A descrição acima do construtor diz "o cron roda quando qualquer um corresponde" quando vê esse caso.

    Atalhos

    O cron no Linux também entende @reboot (uma vez, quando o sistema inicia), @hourly, @daily (ou @midnight), @weekly, @monthly e @yearly (ou @annually). Eles representam 0 * * * *, 0 0 * * *, 0 0 * * 0, 0 0 1 * * e 0 0 1 1 *.

    Exemplos de cron

    • */5 * * * * a cada 5 minutos.
    • 0 3 * * * todo dia às 3:00, um horário tranquilo para um backup.
    • 0 9 * * 1-5 de segunda a sexta às 9:00.
    • */15 9-17 * * 1-5 a cada 15 minutos em horário comercial.
    • 0 0 1 * * à meia-noite do primeiro dia de todo mês.
    • 0 0 1 */3 * a cada três meses, no primeiro dia.
    • 0 0 1 1 * uma vez por ano, em 1º de janeiro.

    Há mais de trinta exemplos abaixo do construtor. Clique em um para carregá-lo.

    A linha do crontab e o campo de usuário

    No crontab de um usuário (crontab -e) uma linha tem cinco campos e um comando. Nos arquivos do sistema /etc/crontab e nos arquivos em /etc/cron.d/ há mais um campo entre o horário e o comando, o nome do usuário que o executa:

    */5 * * * * root /usr/local/bin/check.sh

    Preencha o campo "Usuário" apenas para esses arquivos. Uma linha com usuário em crontab -e tentaria executar o nome do usuário como comando.

    Como ver e alterar as tarefas do cron no Linux

    • crontab -l mostra as tarefas do usuário atual, e crontab -e as abre em um editor.
    • sudo crontab -u username -l mostra as tarefas de outro usuário.
    • crontab -r remove de uma vez todas as tarefas do usuário e não pergunta. Use com cuidado.
    • /etc/crontab e os arquivos em /etc/cron.d/ são as tarefas do sistema. As pastas /etc/cron.hourly, cron.daily, cron.weekly e cron.monthly guardam scripts que rodam nesses agendamentos.
    • systemctl list-timers mostra as tarefas dos timers do systemd, que são um sistema separado do cron.
    • O log: no Debian, Ubuntu e Astra Linux procure a palavra CRON em /var/log/syslog (grep CRON /var/log/syslog); em sistemas baseados em Red Hat veja /var/log/cron; em um sistema com journald use journalctl -u cron ou journalctl -u crond.

    O cron relê os arquivos sozinho quando eles mudam, então você não precisa reiniciá-lo depois de crontab -e.

    Cron no Astra Linux e no ALT Linux

    A expressão cron é a mesma em todo lugar. O que muda é o nome do serviço. O Astra Linux é baseado no Debian, então o serviço normalmente se chama cron: sudo systemctl status cron. No ALT Linux ele normalmente se chama crond: sudo systemctl status crond. Se o systemctl disser que a unidade não foi encontrada, tente o outro nome. Para iniciar o serviço a cada boot use sudo systemctl enable --now cron (ou crond).

    Expressões cron do Quartz e do Spring (seis ou sete campos)

    Programas em Java usam outro tipo de expressão cron. O Quartz tem seis campos, com os segundos primeiro, e um sétimo campo opcional para o ano: second minute hour day-of-month month day-of-week [year]. As diferenças em relação ao crontab:

    • Há segundos na frente, então "a cada 5 minutos" é 0 */5 * * * ?.
    • Um dos dois campos de dia deve ser ? (sem valor específico). O crontab não conhece esse sinal.
    • Os dias da semana são numerados a partir de 1, e o domingo é 1 (de segunda a sexta é 2-6 ou MON-FRI). No crontab o domingo é 0 ou 7.
    • O Quartz tem sinais extras: L (o último dia), W (o dia útil mais próximo) e # (o enésimo dia da semana: 6#3 é a terceira sexta-feira).

    O Spring (@Scheduled(cron = "...")) também usa seis campos, com os segundos primeiro, mas os dias da semana dele seguem o crontab: 0-7, com 0 ou 7 para o domingo, e nomes (MON-FRI). O gerador mostra as duas formas da sua expressão, com o campo de segundos que você escolher. Uma expressão crontab não consegue dizer "no dia 1 ou na sexta-feira" no Quartz, porque o Quartz quer um ? em um dos campos de dia, e o gerador avisa quando isso acontece.

    O nome de uma tarefa no FastPanel

    O FastPanel pode aceitar uma linha inteira de cron de uma vez e lê o texto depois do # no final como o nome da tarefa:

    * * * * * wget --quiet -O /dev/null 'https://example.com/cron?key=secret' #Broadcasts cron job

    Escreva o nome no campo "Nome da tarefa" e o gerador o acrescenta nesta forma. Este é um recurso do FastPanel, não uma parte do cron. O manual do cron (man 5 crontab) diz que comentários não são permitidos na mesma linha de um comando, porque viram parte do comando. No Linux isso ainda funciona, porque o shell que executa a linha trata o # como o início de um comentário próprio, e o texto é descartado. Não conte com isso em outros painéis sem testar. Um cuidado: um % no nome cortaria a linha, então o gerador o remove.

    Se você ainda não escolheu um painel de controle, a página inicial do linuxx.info traz uma tabela "Escolha o painel de controle ideal para hospedagem VPS" para ajudar a encontrar exatamente o que você precisa.

    Erros comuns

    • Um % solto. Em um comando do crontab um % vira uma quebra de linha, então date +%F quebra. Escreva date +\%F. A opção do gerador faz isso por você.
    • Um PATH curto. O cron roda com um PATH pequeno, então um comando que funciona no seu terminal pode não ser encontrado. Use caminhos completos: /usr/bin/php, /usr/bin/wget.
    • O fuso horário errado. Os horários estão no fuso horário do servidor, que muitas vezes é UTC. Perto da mudança para o horário de verão, uma tarefa em uma hora que foi pulada pode não rodar, e uma tarefa em uma hora repetida pode rodar uma ou duas vezes, conforme o programa cron.
    • Execuções sobrepostas. Se uma tarefa demora mais que o intervalo entre execuções, as cópias se acumulam. Use flock -n, como faz a opção do gerador.
    • E-mail com a saída. O cron envia por e-mail a saída de uma tarefa ao usuário dela. Redirecione-a para um arquivo ou para /dev/null se não quiser o e-mail.
    • Um script que não é executável (chmod +x), ou um arquivo do crontab do sistema sem o campo de usuário.
    • Uma URL com & ou ? fora de aspas. O gerador coloca aspas onde são necessárias.

    Limitações

    • O gerador trabalha com o crontab do Vixie cron e do cronie: cinco campos, nomes de meses e dias e os atalhos. Os sinais ?, L, W e # do Quartz não são aceitos no campo crontab, e a mensagem avisa.
    • As próximas execuções são calculadas pelo relógio do seu navegador e pelo fuso horário que você escolher. O servidor precisa ter o mesmo fuso horário para os horários coincidirem.
    • Programas cron diferentes tratam de formas diferentes a hora de uma mudança de horário. A lista mostra o resultado usual e pula um horário que não existe.
    • Para um temporizador que não é cron, o systemd tem a configuração OnCalendar. Ela não é abordada aqui.
    • Para transformar um Unix timestamp de um log em uma data use o conversor de Unix timestamp.

    Ferramentas semelhantes

    Conversor de Unix timestamp: timestamp para data e vice-versa

    Conversor de Unix timestamp online: timestamp para data e vice-versa, segundos ou milissegundos, qualquer fuso horário e exemplos de código.

    10
    Formatador e validador de JSON

    Formate, minifique e valide JSON online. Abra um arquivo, veja a linha e a coluna de um erro de sintaxe e baixe o resultado. No navegador.

    19
    Gerador e verificador de senhas: como no Chrome ou para celular

    Gerador de senhas no navegador: aleatória, no estilo do Chrome ou fácil de digitar no celular, e um verificador de senhas. Nada é enviado.

    29
    Analisador de URL online: divida um link em partes

    Analisador de URL grátis: host, protocolo, caminho, porta, parâmetros e fragmento em um instante. Útil para webmasters e SEO. Roda no navegador.

    16

    Ferramentas populares