FreeToGenerate.com

100% grátis · sem registo · tudo no navegador

Escreve uma expressão cron para veres o que significa e quando corre.

Tudo corre no teu navegador. Nada é enviado.

Também disponível em: English · Español · Français · العربية

O que significa esta expressão cron?

Cola uma expressão cron e vê, em português simples, quando é que ela corre — com as próximas dez execuções já calculadas no teu fuso horário.

O que é uma expressão cron?

Uma expressão cron é a forma padrão de agendar uma tarefa para correr sozinha, em horas ou dias específicos, sem que ninguém tenha de a lançar à mão. A especificação vem do crontab(5), a página de manual do agendador cron original, e descreve cinco campos separados por espaços, cada um a controlar uma parte diferente do calendário.

Da esquerda para a direita, os campos são: minuto (0 a 59), hora (0 a 23), dia do mês (1 a 31), mês (1 a 12, ou os nomes de três letras jan a dec) e dia da semana (0 a 7, em que tanto o 0 como o 7 significam domingo, ou os nomes de três letras em inglês, sun a sat). Em qualquer campo, um asterisco significa «qualquer valor», uma vírgula separa uma lista, um traço marca um intervalo inclusivo, e uma barra depois de um intervalo ou de um asterisco define um passo — */15 no campo dos minutos, por exemplo, significa de 15 em 15 minutos.

Uma expressão cron parece uma linha de código, mas é só isto: cinco perguntas com resposta numérica, mais um comando a seguir. Este analisador lê só as cinco perguntas e traduz a resposta para português corrente.

Como se usa

  1. Cola a expressão. Escreve ou cola os cinco campos no campo de texto, ou escolhe um dos exemplos para começar por algum lado.
  2. Escolhe o fuso horário. O seletor já vem preenchido com o fuso do teu navegador, mas podes mudar para qualquer outro e ver as execuções nesse fuso.
  3. Lê o resumo e a tabela. A frase em português diz quando a tarefa corre, a tabela mostra campo a campo o que foi escrito, e a lista de baixo mostra as próximas dez execuções reais, com data e hora.

Os dois campos do dia combinam-se com ou, não com e

A surpresa mais comum de quem lê uma expressão cron é assumir que o dia do mês e o dia da semana funcionam em conjunto, como duas condições que têm ambas de ser verdadeiras. O crontab(5) diz o contrário, com todas as letras: «If both fields are restricted (i.e., do not contain the '*' character), the command will be run when either field matches the current time.» Ou seja: quando os dois campos estão restringidos — nenhum deles é um asterisco simples — a tarefa corre quando UM dos dois corresponde, não quando os dois correspondem ao mesmo tempo.

É por isto que «0 0 13 * 5» não significa «todas as sextas-feiras 13», por mais que pareça dizer exatamente isso. Significa «o dia 13 de qualquer mês, OU qualquer sexta-feira», com os dois critérios a somar execuções em vez de se filtrarem um ao outro. Contado para 2026: essa expressão corre 61 vezes, contra apenas 3 sextas-feiras 13 no calendário desse ano. Uma expressão pensada para acontecer três vezes por ano acontece, na realidade, vinte vezes mais.

Se o que realmente queres é só a sexta-feira 13, o cron padrão não tem forma de o exprimir — não existe um «e» entre estes dois campos, só o «ou» descrito acima. A única solução correta é agendar a tarefa para todas as sextas-feiras (ou todos os dias 13) e verificar a data dentro do próprio comando, deixando-o sair sem fazer nada quando a condição extra não se verifica. Dá mais trabalho, mas é a única forma de não confiar num comportamento que a especificação nunca prometeu.

O que a mudança da hora faz a uma tarefa agendada

A mudança da hora não é um caso esquecido por esta ferramenta — está prevista na própria especificação. O crontab(5) avisa: «non-existent times, such as the 'missing hours' during the daylight savings time conversion, will never match, causing jobs scheduled during the 'missing times' not to be run. Similarly, times that occur more than once ... will cause matching jobs to be run twice.» Este analisador reproduz exatamente isso, em vez de escolher uma das duas horas em silêncio.

Três exemplos medidos para Nova Iorque em 2026, ano em que os relógios adiantam a 8 de março e atrasam a 1 de novembro: uma tarefa marcada para as 02:30 todos os dias simplesmente não corre a 8 de março, porque as 02:30 não existem nesse dia — o relógio salta de 01:59:59 direto para as 03:00. Uma tarefa marcada para a 01:30 todos os dias corre duas vezes a 1 de novembro, com uma hora de intervalo entre as duas execuções, porque a 01:30 acontece duas vezes nesse dia. E mesmo uma tarefa horária não escapa: «0 * * * *» corre 23 vezes a 8 de março, não 24 — a que falta é precisamente a das 02:00.

Há também um ponto onde as implementações de cron divergem mesmo entre si, e vale a pena dizer como esta ferramenta decide: o que conta como um campo «com asterisco» para efeitos da regra do ou explicada acima. No código-fonte do cron original, essa marca é definida a partir do primeiro carácter do campo, antes de o resto ser analisado — por isso «*/9» conta como tendo um asterisco e não é considerado restringido, o que o tira da regra do ou. Um teste com 5076 expressões geradas ao acaso contra uma implementação de referência muito usada encontrou 1262 divergências, e todas, sem exceção, vinham desta mesma causa. Este analisador segue o comportamento do cron original.

Porque é gratuito?

Tudo o que este analisador faz — ler a expressão, calcular as próximas execuções, aplicar as regras do fuso horário — corre inteiramente no teu navegador, em JavaScript. Não há upload, não há conta para criar, não há marca de água a colar no resultado, e não fica nenhum registo da expressão que colaste. Como não há nenhum servidor a fazer trabalho por ti, não há custo a cobrir, e a ferramenta pode ficar gratuita para sempre.