Arquivos históricos do BR-Linux.org apresenta:

Agendamento de tarefas com o cron e as crontabs

Esta é uma reedição do artigo de Marcelo Araujo (msaraujo@tro.matrix.com.br) 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

Marcelo Araujo (msaraujo@tro.matrix.com.br)

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 (msaraujo@tro.matrix.com.br) 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

Postado por brain em janeiro 10, 2004 10:35 PM

Comentários para "Agendamento de tarefas com o cron e as crontabs"

» Postado por: Leonardo França em janeiro 27, 2004 11:55 AM, 200.193.224:

 

» Postado por: Gustavo Fiod em janeiro 29, 2004 07:28 PM, 200.153.74.:

 

» Postado por: Claudio Marcelo em fevereiro 11, 2004 02:13 PM, 200.199.111:

 

» Postado por: Biry_Night em julho 2, 2004 01:05 AM, 200.101.62.:

 

» Postado por: VeloxDJ em julho 5, 2004 06:19 PM, 200.146.150:

 

» Postado por: Wedrey em julho 9, 2004 11:26 AM, 200.140.63.:

 

» Postado por: Marcelo Araujo em agosto 1, 2004 05:43 PM, 200.215.99.:

 

» Postado por: Marcus Vinicius em agosto 3, 2004 10:48 AM, 201.6.112.7:

 

» Postado por: Gustavo em setembro 23, 2004 07:03 PM, 200.192.140:

 

Antes de comentar...

- Preserve a qualidade desta discussão
- Leia os Termos de Uso.
- Este formulário deve ser usado para comentários sobre a notícia. Se você tem dúvidas ou precisa de ajuda, use o Fórum.
- Mantenha o foco nos argumentos e no assunto
- Não faça ataques pessoais.
- Pense 5 vezes antes de entrar em discussões inúteis, como "qual é a melhor distribuição/ambiente gráfico/linguagem de programação/etc.", mesmo se alguém já tiver provocado - um erro não justifica o outro
- Não seja um e-mala ;-)


O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.