Gerador de expressões cron: crontab, Quartz e Spring
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.
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 few hours
Every day
Working days and weekends
Every month and every year
Shortcuts
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
- 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.
- 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ê.
- Escolha o fuso horário do seu servidor e veja as próximas dez execuções.
- Adicione um comando em "Fazer a linha do crontab" e copie a linha para
crontab -e.
Os cinco campos de uma expressão crontab
| Campo | Valores | Observações |
|---|---|---|
| Minuto | 0-59 | |
| Hora | 0-23 | Relógio de 24 horas |
| Dia do mês | 1-31 | |
| Mês | 1-12 ou jan-dec | |
| Dia da semana | 0-7 ou sun-sat | 0 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, e10-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-5de segunda a sexta às 9:00.*/15 9-17 * * 1-5a 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 -lmostra as tarefas do usuário atual, ecrontab -eas abre em um editor.sudo crontab -u username -lmostra as tarefas de outro usuário.crontab -rremove de uma vez todas as tarefas do usuário e não pergunta. Use com cuidado./etc/crontabe os arquivos em/etc/cron.d/são as tarefas do sistema. As pastas/etc/cron.hourly,cron.daily,cron.weeklyecron.monthlyguardam scripts que rodam nesses agendamentos.systemctl list-timersmostra 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 usejournalctl -u cronoujournalctl -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-6ouMON-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ãodate +%Fquebra. Escrevadate +\%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/nullse 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,We#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 online: timestamp para data e vice-versa, segundos ou milissegundos, qualquer fuso horário e exemplos de código.
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.
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.
Analisador de URL grátis: host, protocolo, caminho, porta, parâmetros e fragmento em um instante. Útil para webmasters e SEO. Roda no navegador.
Ferramentas populares
Descubra quem hospeda um site: endereço IP, empresa de hospedagem (ASN), país e cidade do servidor. Verificador gratuito para qualquer domínio.
IP Lookup grátis: país, cidade, coordenadas e fuso horário de um endereço IP e o nome do host por consulta de IP reverso (DNS reverso). IPv4 e IPv6.
DNS lookup online grátis: registros A, AAAA, CNAME, MX, NS, TXT, SOA e CAA de qualquer domínio e o certificado SSL dele. Veja por que o DNS lookup falha.
Teste dos EUA (Nova York) se um site está no ar: código de status HTTP e tempo de resposta em ms. Ping gratuito dos EUA para qualquer URL.