Finalmente resolvi pesquisar como funciona o agendamento de tarefas no Linux para eu poder agendar o backup do MySQL (uso Ubuntu Server) e o funcionamento do crontab é bem mais simples do que eu pensava.
Como funciona o crontab
O funcionamento do crontab é simples: você tem um arquivo de texto em que cada linha representa uma tarefa agendada, cada linha é composta de 6 variáveis separadas por vírgula, explicadas abaixo.
O primeiro passo é no terminal digitar:
crontab -e
Este comando vai abrir seu arquivo de crontab ou criar um arquivo caso ele ainda não exista. No editor é só inserir uma linha com a rotina que você quer agendar, seguindo a estrutura abaixo abaixo:
* * * * * comando a ser executaco
- - - - -
| | | | |
| | | | +----- dia da semana (0 - 6) (Domingo=0)
| | | +------- mês (1 - 12)
| | +--------- dia do mês (1 - 31)
| +----------- hora (0 - 23)
+------------- minuto (0 - 59)
O * representa "todos", por exemplo:
0 4 * * 0 rm /home/gserrano/backup/*
O exemplo acima remove todos os arquivos da pasta /home/gserrano/backup todo o domingo as 4 AM. Para a execução de comandos completos você pode usar shellscript, para isso o seu comando ficaria
0 4 * * 0 sh /home/exemplo.hs
O exemplo acima executa o "exemplo.sh" também as 4 da madrugada aos domingos.
Dicas
Você pode usar vírgula para executar um comando mais de uma vez. O exemplo abaixo vai executar o comando as 4 AM de domingo e quinta-feira:
0 4 * * 0,4 sh /home/exemplo.hs
Você pode usar / para indicar uma repetição dentro do intervalo que vem depois da barra. O exemplo abaixo vai executar o comando a cada 10 minutos, todo o dia:
/10 * * * * sh /home/exemplo.hs
Atenção: o uso do / para intervalo não é suportado em todos os sistemas.
Tentei ser o mais direto e conciso neste pequeno tutorial, se você tiver dúvidas ou quiser corrigir ou acrescentar algo use os comentários.
Referências