Como você pode imaginar, os arquivos crontab podem ser usados para uma variedade de propósitos práticos, como: Backups de banco de dados, Operações em lote, Atualizações do sistema, Agendamento de tarefas e com arquivos crontab
A Sintaxe do Arquivo cront
# * * * * * comando a ser executado # | | | | | # | | | | | # | | | | | # | | | | |_______________ Dia da semana (0 - 6) (domingo a sábado) # | | | | # | | | |_______________ Mês do Ano (1 - 12) # | | | # | | |_______________ Dia do Mês (1 - 31) # | | # | |_______________ Hora (0 - 23) # | # |_______________ Minuto (0 - 59)
- Minuto: O valor esperado é entre 0–59 minutos.
- Hora: O valor esperado é entre 0–23, representando as 24 horas de um dia.
- Dia do mês: o valor esperado é entre 1 e 31, representando os 31 dias possíveis do mês.
- Mês do Ano: O valor esperado é entre 1 e 12, representando os 12 meses do ano. Este valor também pode ser definido usando as três primeiras letras do mês, como JAN, FEV, NOV, etc.
- Dia da semana: O valor esperado é entre 0–6, de domingo (0) a sábado (6). Você também pode usar as três primeiras letras do dia, como SUN, WED, etc.
Juntando tudo isso, um comando cron que diz 0 5 6 2 * seria executado todos os anos em 6 de fevereiro às 5h UTC, independentemente do dia da semana. Da mesma forma, o comando cron 0 0-7 * 1 0 seria executado a cada hora no minuto 0, da meia-noite às 7h UTC aos domingos de janeiro, independentemente do dia do mês.
Símbolos
Há uma variedade de símbolos que podem ser usados nos comandos cron que ajudam a definir melhor os detalhes relacionados ao tempo. Aqui estão algumas especificações adicionais que podem ser incluídas:
- Qualquer valor (*): Os asteriscos são usados como curingas, que correspondem a todos os caracteres possíveis (por exemplo, a cada minuto, a cada hora, a cada dia, etc.). Por exemplo, 0 5 * * * executa a tarefa todos os dias às 5:00 UTC e * * * * * executaria a cada minuto o tempo todo.
- Valores múltiplos (,): As vírgulas são usadas para separar vários itens em uma lista. Por exemplo, o comando 2,4,8 * * * * executará a tarefa no segundo, quarto e oitavo minuto. Por exemplo, 1:02 e 2:08 corresponderiam.
- Intervalos múltiplos (-): Traços são usados para definir um intervalo de valores, um range. Por exemplo, o comando * * 2-5 * * executa a tarefa entre fevereiro e maio.
- Repetição de intervalo (/): Barras são usadas para indicar frequências dentro de um determinado período de tempo. Por exemplo, */4 no campo do mês (comando * * * */4 *) executará a tarefa a cada quatro meses. (Nota: Isso seria praticamente o mesmo que escrever4,8,12 no campo do mês.)
Tabela com Exemplos
Expressão | Significado |
0 0 * * * /bin/sh backup.sh | Fazer um backup de banco de dados à meia noite de cada dia. |
0 6,18 * * * /bin/sh backup.sh | Fazer um backup de banco de dados duas vezes por dia (às 6 da manhã e às 18h da tarde). |
0 */6 * * * /scripts/monitor.sh | Para fazer monitoramentos a cada 6 horas. |
*/10 * * * * /home/user/script.sh | Para executar uma tarefa cron para o arquivo do script localizado no diretório home a cada 10 minutos. |
0 * 20 7 * /bin/sh backup.sh | Para executar um backup de banco de dados a cada hora em 20 de julho. |
0 0 * * 2 * /bin/sh | Para executar um backup de banco de dados à meia noite de toda terça-feira. |
* * * 1,2,5 * /script/script.sh | Para executar um comando em Janeiro, Fevereiro e Maio. |
10-59/5 5 * * * /home/user/script.sh | Para executar um comando a cada 5 minutos às 5:00h da manhã, começando às 5:10h. |
0 8 1 */3 * /home/user/script.sh | Para executar um comando trimestralmente no primeiro dia às 8:00h da manhã. |
* * * * * /scripts/script.sh; /scripts/scrit2.sh | Para definir uma agenda para tarefas múltiplas em um único Cron Job. |
@reboot /scripts/script.sh | Para executar uma certa tarefa toda vez que você inicia o sistema. |
0 0 1 * * /home/user/script.sh | Para executar um comando no primeiro dia de cada mês. |