Os comandos são executados pelo cron quando os minutos, horas e meses de ano correspondem à hora atual e quando pelo menos um dos dois campos do dia (dia do mês ou dia da semana) corresponde à hora atual.
Um campo pode conter um asterisco (*), significando "qualquer".
Intervalos de números são permitidos. Os intervalos são dois números separados por um hífen. O intervalo especificado é inclusivo. Por exemplo, 8-11 para uma entrada de "horas" especifica a execução nas horas 8, 9, 10 e 11.
Listas são permitidas. Uma lista é um conjunto de números (ou intervalos) separados por vírgulas. Exemplos: "1,2,5,9", "0-4,8-12".
Os valores de salto podem ser usados em conjunto com intervalos. Seguir um intervalo com "/" especifica saltos do valor do número dentro do intervalo. Por exemplo, "0-23/2" pode ser usado no campo de horas para especificar a execução do comando a cada duas horas (a alternativa no padrão V7[4] é "0,2,4,6,8,10,12,14,16,18,20,22 "). Os passos também são permitidos após um asterisco, então, se você quer dizer "a cada duas horas", use apenas "*/2".
Os nomes também podem ser usados para os campos "mês" e "dia da semana". Use as primeiras três letras do dia ou mês em particular (em inglês e a caixa não importa). Não são permitidas faixas ou listas de nomes nestes campos.
O "sexto" campo (ou seja, o resto da linha) especifica o comando a ser executado. A parte do comando da linha toda, até uma nova linha ou o caractere porcento (%), será executada por /bin/sh ou pelo shell especificado na variável SHELL do arquivo crontab. Os sinais de porcentagem (%) no comando, a menos que 'escapados' com barra invertida (), serão alterados para caracteres de nova linha e todos os dados após o primeiro % serão enviados ao comando como entrada padrão. Não há como dividir uma única linha de comando em múltiplas linhas, como com o clássico "" de final de linha do shell.
Nota: O dia da execução de um comando pode ser especificado por dois campos - 'dia do mês' e 'dia da semana'. Se ambos os campos estiverem especificados restritivamente (ou seja, não forem *), o comando será executado quando qualquer dos dois campos corresponder ao momento atual. Por exemplo, "30 4 1,15 * 5" faria com que um comando fosse executado às 4:30 da manhã no dia 1 e 15 de cada mês, mais todas as sextas-feiras.
Em vez dos cinco primeiros campos, uma das oito sequências de caractere especiais pode aparecer:
Tabela 1: Sequências especiais de momentos
Cadeia Significado
@reboot Executar uma vez, na inicialização.
@yearly Executar uma vez por ano, "0 0 1 1 *".
@annually (O mesmo que @yearly)
@monthly Executar uma vez por mês, "0 0 1 * *".
@weekly Executar uma vez por semana, "0 0 * * 0".
@daily Executar uma vez por dia, "0 0 * * *".
@midnight (Idêntico a @daily)
@hourly Executar uma vez por hora, "0 * * * *".
Fonte: página do comando man 5 crontab do Ubuntu
Linux 16.04 LTS, 2017.
Um exemplo de formato crontab com campos comentados é o seguinte:
# Minuto Hora Dia do Mês Mês Dia da Semana Comando
# (0-59) (0-23) (1-31) (1-12 ou jan-dez) (0-6 ou Sun-Sat)
0 2 12 * * /usr/bin/find
Esta linha executa o comando "find" às 2h do dia 12 de cada mês.
[4] V7, Versão7 ou UNIX Versão 7. Referência a versão do UNIX lançada em 1979, que é a última versão do UNIX sob responsabilidade do Bell Laboratories. Em 1980 o UNIX foi vendido para a AT&T.