Como executar e agendar tarefas com CRON

A administração de sistemas e desenvolvimento de software muitas vezes exige a necessidade de automatizar tarefas. O cron é uma ferramenta poderosa que permite agendar e automatizar a execução de comandos e scripts em sistemas Unix-like. Vejamos abaixo o que é o cron, como ele funciona, e como você pode utilizá-lo para executar e agendar tarefas de forma eficiente.

O Que é o CRON?

cron é um daemon presente em sistemas Unix-like, incluindo Linux, que executa comandos ou scripts em intervalos de tempo especificados. Ele é utilizado para automatizar a execução de tarefas repetitivas, como backups, atualizações de sistemas, e envio de relatórios.

O cron utiliza um arquivo de configuração chamado crontab (abreviação de “cron table”), onde são definidos os comandos a serem executados e seus respectivos horários.

Sintaxe do CRON

A sintaxe de uma entrada no crontab é composta por cinco campos que representam o intervalo de tempo e um campo adicional para o comando a ser executado:

* * * * * comando
– – – – –
| | | | |
| | | | +—- Dia da semana (0 – 7) (Domingo=0 ou 7)
| | | +—— Mês (1 – 12)
| | +——– Dia do mês (1 – 31)
| +———- Hora (0 – 23)
+———— Minuto (0 – 59)

Exemplo Básico

Para entender melhor a sintaxe, vamos considerar um exemplo simples:

30 2 * * * /path/para/o/script.sh

Este exemplo executará o script script.sh localizado em /path/para/o/ todos os dias às 2:30 da manhã.

Criando e Editando Crontabs

Para criar ou editar crontabs, você pode usar o comando crontab. Aqui estão alguns comandos úteis:

Listar Crontabs

Para listar os cron jobs do usuário atual, utilize:

crontab -l

Editar Crontabs

Para editar o crontab do usuário atual, utilize:

crontab -e

Isso abrirá o crontab no editor de texto padrão do sistema. Adicione suas tarefas conforme a sintaxe discutida anteriormente e salve o arquivo para aplicar as mudanças.

Excluir Crontabs

Para excluir todos os cron jobs do usuário atual, utilize:

crontab -r

Exemplos Práticos de Agendamentos com CRON

Vamos explorar alguns exemplos práticos de como configurar diferentes tarefas com cron.

Executar um Script Diário

Para executar um script todos os dias às 3:00 da manhã:

0 3 * * * /path/para/o/script-diario.sh

Executar um Comando a Cada Hora

Para executar um comando a cada hora no minuto 15:

15 * * * * /path/para/o/comando-horario.sh

Executar um Script Semanalmente

Para executar um script todos os domingos às 6:00 da manhã:

0 6 * * 0 /path/para/o/script-semanal.sh

Executar um Comando Mensalmente

Para executar um comando no primeiro dia de cada mês às 12:00 (meio-dia):

0 12 1 * * /path/para/o/comando-mensal.sh

Executar um Comando em Intervalos Personalizados

Para executar um comando a cada 10 minutos:

*/10 * * * * /path/para/o/comando-10min.sh

Práticas Recomendadas para Usar CRON

Para garantir que seus cron jobs sejam executados corretamente e sem problemas, siga estas práticas recomendadas:

Use Caminhos Absolutos

Sempre use caminhos absolutos para comandos e scripts no crontab para evitar problemas relacionados a caminhos relativos.

Redirecione Saídas e Erros

Redirecione a saída padrão e os erros para arquivos de log para facilitar a depuração:

0 3 * * * /path/para/o/script.sh >> /path/para/logs/output.log 2>&1

Verifique os Logs do CRON

Verifique regularmente os logs do cron para garantir que suas tarefas estão sendo executadas conforme esperado. Em muitos sistemas, os logs do cron podem ser encontrados em /var/log/cron ou /var/log/syslog.

Teste Seus Comandos

Teste manualmente seus comandos e scripts antes de adicioná-los ao crontab para garantir que funcionem corretamente.

Use Variáveis de Ambiente

Defina variáveis de ambiente no crontab para garantir que seus comandos sejam executados no ambiente correto:

SHELL=/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 0 3 * * * /path/para/o/script.sh