Crontab - Agendamento de tarefas

Muitas vezes você tem necessidade de agendas tarefas em seu servidor Linux pois fazer uma rotina todos os dias acaba sendo um tanto quando desgastante e como somos pessoas (humanos) corremos o risco de esquecer de algo, então vou mostar como efetuo rotinas diárias em meu servidor de dados como ERP da empresa.

Opções do Crontab:
crontab -l = lista as tarefas agendadas;
crontab -e = edita a lista de tarefas agendadas;
crontab -r = remove todas as tarefas agendadas, ou seja, remove o crontab do usuário;

Como ele é formado: utilizando a opção acima temos o crontab do usuário, mas também temos a opção global que é utilizada somente pelo root. Então utilizando o comando crontab -e temos:
0 4 * * * ls -l

Onde temos 5 campos conforme descrito abaixo:
0 = minuto que vai rodar a tarefa (0-59)
4 = hora que vai rodar a tarefa (0-23)
* = dia do mês que vai rodar a tarefa (1-31)
* = mês que vai rodar a tarefa (1-12)
* = dia da semana que vai rodar a tarefa (onde: 0=domingo;1=segunda;2=terça e sábado=6)
ls -l = comando que você quer executar na tarefa

Exemplo prático: todo domingo dentro do meu servidor preciso executar uma limpeza de um certo diretório temporário e utilizo conforme abaixo:
30      23      *       *       0       /diretorio/shell/limparel.sh

Todos os dias as 23:30h rodo meu script limparel.sh que faz a limpeza de meu diretório temporário.

Arquivo de log: para verificar o log do seu crontab para saber se ele está ou não rodando use.
tail -f /var/spool/mail/usuario

Dica Útil: Se você quiser rodar o comando ou script em em dois minutos específicos ou horas ou dias use:

30,45      12,23      *       *       0       /diretorio/shell/limparel.sh

Ou seja o script vai rodar no minuto 30 e 45 e na hora 12 e 23 de todos os dias.

Sei que existe muito material sobre isso, mas como eu disse, vou demonstrar de uma forma prática e objetiva o que acontece no meu dia a dia.

Att Junior.

Comentários

Postagens mais visitadas