BrowserTools
Publicidade
Início / Geradores / Gerador e explicador de expressões cron

Gerador e explicador de expressões cron

Cria e descodifica agendamentos cron em linguagem clara, inteiramente no teu navegador.

A carregar Gerador e explicador de expressões cron… Se nada acontecer, ativa o JavaScript.

O cron é o agendador de tarefas baseado no tempo que faz funcionar os servidores do mundo desde a década de 1970. Uma expressão cron é uma cadeia compacta de cinco campos (minuto, hora, dia do mês, mês e dia da semana) que, em conjunto, descrevem exatamente quando uma tarefa deve disparar. A sintaxe é célebre pela sua concisão, e um único asterisco ou barra mal colocados podem transformar uma cópia de segurança de hora a hora numa tempestade a cada minuto. Esta ferramenta transforma qualquer expressão numa frase clara e legível para que possas confirmar o agendamento antes de o gravares num crontab, numa pipeline de CI ou num CronJob do Kubernetes.

Perguntas frequentes

A minha expressão cron é enviada para algum lado?
Não. A expressão é analisada e explicada inteiramente no teu navegador por uma biblioteca de JavaScript incorporada. Nada é enviado para um servidor, registado ou guardado, por isso é seguro colar agendamentos retirados de sistemas privados ou de produção.
O que significam os cinco campos de uma expressão cron?
Da esquerda para a direita são minuto (0-59), hora (0-23), dia do mês (1-31), mês (1-12 ou JAN-DEC) e dia da semana (0-6 ou SUN-SAT, em que 0 é domingo). Um valor em cada posição restringe quando a tarefa corre, e um asterisco significa todos os valores possíveis desse campo.
O que significam juntos um asterisco e uma barra, como */15?
A barra é um operador de passo. Aplicada a um asterisco significa 'a cada N unidades', por isso */15 no campo dos minutos dispara nos minutos 0, 15, 30 e 45. Também a podes combinar com um intervalo; por exemplo, 0-30/10 significa a cada 10 minutos dentro da primeira meia hora.
Porque é que a minha tarefa corre mais vezes do que eu esperava?
A causa mais comum é deixar um campo como asterisco quando querias fixá-lo. Por exemplo, 0 * * * * corre ao início de cada hora, enquanto * 0 * * * corre a cada minuto durante a hora da meia-noite. Ler a explicação em linguagem clara que esta ferramenta produz é a forma mais rápida de apanhar esse tipo de erro.
Suporta segundos ou cron de seis campos?
Esta ferramenta foca-se no formato clássico de cinco campos usado pelo cron do Unix e pela maioria dos agendadores. Alguns sistemas (Quartz, certos executores de CI) acrescentam um campo de segundos no início ou um campo de ano no fim. Se colares um desses, a explicação pode ficar desfasada num campo, por isso recorta-a primeiro para cinco campos.
Como interagem o dia do mês e o dia da semana?
No cron padrão, se tanto o campo do dia do mês como o do dia da semana estiverem restringidos (nenhum é um asterisco), a tarefa corre quando qualquer uma das condições se verifica, não ambas. Este comportamento surpreendente do tipo OR é uma fonte frequente de bugs, por isso mantém um dos dois campos como asterisco a menos que queiras especificamente essa união.
Posso usar nomes como MON ou JAN em vez de números?
Sim, a maioria das implementações de cron aceita abreviaturas de três letras para os meses (JAN-DEC) e os dias da semana (SUN-SAT), e não distinguem maiúsculas de minúsculas. Podem tornar as expressões muito mais fáceis de ler, embora os intervalos numéricos continuem a ser necessários para os passos e alguns casos limite.
A ferramenta funciona offline?
Sim. Depois de a página carregar, a biblioteca de análise já está no teu navegador e não são feitos mais pedidos de rede. Podes usá-la num avião, atrás de uma firewall ou enquanto editas um crontab remoto sobre uma ligação instável.

Sobre Gerador e explicador de expressões cron

O explicador aceita expressões cron padrão de cinco campos e suporta os operadores habituais: o asterisco para qualquer valor, as vírgulas para listas (como 0,15,30,45), os hífenes para intervalos (como 1-5 para segunda a sexta-feira) e as barras para passos (como */5 para cada quinta unidade). Escreve a tua própria expressão ou clica num dos modelos predefinidos para carregar um padrão comum, depois lê a descrição e ajusta-a até corresponder à tua intenção. A tabela de referência de campos por baixo da entrada lembra-te qual a posição que controla qual unidade e que valores cada uma aceita.

Tudo corre localmente no teu navegador usando a biblioteca cronstrue incorporada diretamente na página. Nada do que escreves é enviado, registado ou transmitido a qualquer servidor, por isso podes colar agendamentos de infraestrutura privada sem pensar duas vezes. A ferramenta funciona offline depois de carregada, o que faz dela uma companheira prática quando estás a editar crontabs por SSH e só precisas de uma verificação rápida do que uma linha realmente faz.

Porque se chama cron

O nome cron vem de Chronos, a personificação grega do tempo, e o utilitário apareceu pela primeira vez na Versão 7 do Unix no final da década de 1970. A implementação original de Brian Kernighan simplesmente acordava uma vez por minuto, lia o crontab do sistema e corria o que estivesse agendado. Era elegante, mas não escalava bem à medida que o número de tarefas crescia.

Em 1987 Paul Vixie lançou o que ficou conhecido como Vixie cron, uma reescrita muito mais eficiente que calculava a próxima hora de execução de cada tarefa em vez de percorrer toda a tabela a cada minuto. O Vixie cron introduziu muitas comodidades que hoje se tomam como garantidas, incluindo os valores de passo com o operador de barra, os intervalos e os crontabs por utilizador. Os seus descendentes são distribuídos como o agendador predefinido na maioria das distribuições de Linux.

A sintaxe de cinco campos revelou-se notavelmente duradoura. Décadas após a sua criação, ainda aparece quase inalterada nas plataformas de nuvem, nos orquestradores de contentores e nos serviços de integração contínua modernos. Sempre que escreves um agendamento para um fluxo de trabalho do GitHub Actions ou um CronJob do Kubernetes, estás a falar um dialeto de uma linguagem concebida para um único minicomputador partilhado a funcionar num laboratório de investigação.

Publicidade
Publicidade
Publicidade