24 julho 2008

O daemon crond

O crond é um deamon do sistema cuja a função é executar comandos e programas em datas e horários determinados. Possui um arquivo de configuração, /etc/crontab, onde são especificados os comandos ou programas a serem executados. Possui também um diretório, /var/spool/cron, onde se encontram os arquivos crontab dos usuários.

A sintaxe do arquivo /etc/crontab é:

<minuto><hora><dia_do_mes><mes><dia_da_semana><usuário><comando>

Um asteristico "*" pode ser utilizado para indicar qualquer valor permitido a qualquer campo.

Exemplo de entrada do arquivo /etc/crontab:

30 23 * 1-12 1-6 root /usr/local/scripts/bkpgeral.sh

Essa entrada solicita ao deamon crond que execute o script de backup <clique aqui para ver o post sobre o script de backup>, como superusuário (root), de segunda à sabado, de janeiro a dezembro, às 23:30h.

Eventuais mensagens de erro são enviadas para o e-mail do usuário root.

Exemplo real do arquivo /etc/crontab:

# /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

#run-parts

01 * * * * root run-parts /etc/cron.hourly

02 4 * * * root run-parts /etc/cron.daily

22 4 * * * root run-parts /etc/cron.weekly

42 4 * * * root run-parts /etc/cron.monthly

Essas entradas solicitam ao deamon crond que execute o programa run-parts em datas e horários determinados. Esse programa executa os Scripts de shell, comandos e programas existentesnos diretórios a seguir.

Diretorio Descrição

/etc/cron.hourly A aplicação será executada toda hora.

/etc/cron.daily A aplicação será executada todo dia.

/etc/cron.weekly A aplicação será executada uma vez por semana.

/etc/cron.monthly A aplicação será executada uma vez por mês.

O comando CRONTAB

É possível criar arquivos crontab individuais para que cada usuário possa definir suas próprias tarefas rotineiras, que são executadas automaticamente. Esses arquivos crontab estão localizados no diretório /var/spool/cron e não podem ser editados diretamente, sendo esta função realizada pelo comando crontab.

crontab

Instala, lista ou remove o arquivo crontab de usuário. A permissão para usar o comando crontab é determinada pelos arquivos /etc/cron.allow e /etc/cron.deny. Se o arquivo /etc/cron.allow existir, somente os usuários mencionado neste será permitido usar o comando crontab. Se o arquivo /etc/cron.allow não existir, é verificada a existência do arquivo /etc/cron.deny e todos os usuários não mencionados no mesmo receberão permissão para usar o comando crontab. Se nenhum deste existir, somente o superusuário terá permissão o comando crontab. Um arquivo /etc/cron.deny vazio significa que todos os usuários têm permissão para usar o comando crontab, sendo esta a configuração-padrão

Opção Descrição

-u <usuário> Nome do usuário cujo arquivo crontab será utilizado.

-l Exibe o arquivo crontab atual do usuário.

-r Remove o arquivo crontab atual do usuário.

-e Edita o arquivo crontab atual do usuário.

arquivo Indica um arquivo de crontab a ser posto em atividade. O formato deste arquivo é similar ao /etc/crontab.

Exemplo:

$ crontab -e

30 23 * 1-12 1-6 root /usr/local/scripts/bkpgeral.sh

~

-- insert --

$ crontab -l

#DO NOT EDIT THIS FILE - edit the master and reinstall

#(/tmp/crontab.1326 installed on Tue Jan 25 13:27:12 2008)

#(Cron version - $Id: crontab.c, v 2.13 1994/01/17 03:20:37 vixie Exp $)

30 23 * 1-12 1-6 root /usr/local/scripts/bkpgeral.sh

$ crontab -r

Obs: Se o arquivo /etc/cron.allow existir, o superusuário root deverá ser mencionado neste. O formato do crontab do usuário é:

<minuto><hora><dia_do_mes><mes><dia_da_semana><usuário><comando>

Inicializando o deamon Crond

Execute o comando:

# service crond start (RedHat)

#/etc/init.d/cron {start|stop|restart|reload|force-reload} (Debian)

Facil não... Basta vocês agora começarem a brincar com este comando... Vai te ajudar e muito.

Até o próximo post...

fonte: Linux - Guia de Administrador do Sistema ISBN:85-7522-038-1 - Rubem E. Ferreira, Novatec - São Paulo,SP

Postar um comentário