Usando o Cron.

Artigo extra?do do site br-linux.org
Agendamento de tarefas com o cron e as crontabs
Esta ? uma reedi??o do artigo de Marcelo Araujo ([email protected]) que publiquei originalmente em 1999, explicando como usar os recursos do cron para agendar a execu??o futura ou peri?dica de comandos no Linux.

Agendamento de tarefas com o cron e as crontabs

Esta ? uma republica??o do artigo publicado originalmente em 1999 aqui no br-linux.org

cron e crontab

O cron ? um recurso padr?o do Unix (e do Linux) que permite o agendamento de tarefas para serem executadas em um momento espec?fico, ou em intervalos regulares. Por exemplo, voc? pode programar as tabelas do cron (as chamadas ‘crontabs’) para:

– checar a integridade dos sistemas de arquivo todos os dias as 5:00 AM e mandar mail do resultado para o root;
– verificar se h? mail em suas contas pop a cada 15 minutos
– rodar o updatedb todos os dias ?s 00:30
– todas as quintas-feiras, ?s 3:00 AM, procurar por arquivos core desnecess?rios e exclu?-los
– e muito mais

A administra??o do cron para usu?rios pode envolver alguns cuidados adicionais, que uma boa leitura na documenta??o do seu sistema. Mas o leitor Marcelo Araujo ([email protected]) resolveu facilitar a nossa vida, enviando algumas dicas sobre a inclus?o de tarefas nas tabelas do cron. A base do texto a seguir ? do Marcelo, com complementos aqui e ali.

Entendendo o crontab

Veja este exemplo de linha do crontab:

0,15,30,45 * * * * /bin/netstat -a | /bin/mail root

Essa linha de comando ira fazer que a cada 15 minutos, o netstat -a seja executado e o resultado do mesmo v? para o mail root.

O formato da linha de defini??o de tarefa do cron ?:

minuto hora dia-do-m?s m?s dia-semana comando

Agora, como fazer para editar as suas crontabs? ? simples… Em primeiro lugar decida qual editor de texto que voc? quer usar. Eu prefiro o pico com a op??o -w (para evitar wordwraps). Portanto, terei que usar o
comando export EDITOR=”pico -w”

Para entrar no modo de edi??o da crontab, ap?s selecionar o editor de texto, basta digitar crontab -e e editar linhas como as do exemplo:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
0,15,30,45 * * * * /bin/netstat -a | /bin/mail root
15 21 * * * /usr/bin/updatedb
# isto ? um coment?rio

As tr?s primeiras linhas definem a shell que vai ser usada pelos scripts, o path de procura de comandos, e o usu?rio que vai receber mails em caso de erros. A quarta linha define que aos 0, 15, 30 e 45 minutos de todas as horas, em todos os dias do m?s, todos os meses e todos os dias da semana, vai ser executado o comando /bin/netstat -a | /bin/mail root. A quinta linha define que ?s 21:15 de todos os dias ser? executado o /usr/bin/updatedb.

Voc? pode adicionar e remover entradas no cron ? vontade. Linhas quebcome?arem com um sinal de “#” n?o s?o consideradas, e voc? pode us?-las para desativar temporariamente comandos, ou para acrescentar coment?rios.

Para listar o conte?do de sua crontab, use crontab -l. Para remov?-la completamente, use crontab -u. Para maiores informa??es sobre o cron, use man 8 cron, man 1 crontab e man 5 crontab

em Sem categoria | 555 Palavras