CRON

INTRODUÇÃO

O arquivo de configuração do cron é “/etc/crontab”.

Para configurarmos o cron de um usuário usamos o comando:

crontab -u root -e

DICA: Você pode se logar com o usuário e digitar “crontab -e” para
editar o cron dele. Ex:

[root]$ crontab -e
[nickollas]$ crontab -e

Feito isso, será aberto um arquivo com o vi para adicionarmos tarefas
a serem agendadas.

FUNCIONAMENTO DE UM ARQUIVO CRON

(MIN)  (HORAS)  (DIA MêS)  (MêS)  (DIA SEMANA)  (CMD)
|         |         |        |         |          |
|         |         |        |         |          |
|         |         |        |         |          |
*         *         *        *         *          *
30        8         1       3-11      1-5 /tmp/script.sh

Obs: Para qualquer um dos valores acima, pode ser usado um asterisco (*) para especificar todos os valores válidos.

ATENÇÃO: No campo “comando” não coloque um comando seguido de argumentos pois não irá funcionar. Para isso crie um script com os comandos a serem executados e o torne executavel ligando o bit “x” no arquivo.

O QUE O EXEMPLO ACIMA FAZ:

Executar o script “script.sh” de segunda a sexta-feira, de março a novembro às 8:30 da manha.

SOBRE O FUNCIONAMENTO DO CRON, SUAS OPÇÕES:
 ┌────────── minuto (0 - 59)
 │ ┌──────── hora (0 - 23)
 │ │ ┌────── dia do mês (1 - 31)
 │ │ │ ┌──── mês (1 - 12)
 │ │ │ │ ┌── dia da semana (0 - 6 => Segunda-Domingo ou
 │ │ │ │ │                  1 - 7 => Segunda-Domingo)
 ↓ ↓ ↓ ↓ ↓
 * * * * * comando a ser executado
PASSO A PASSO PARA IMPLEMENTAÇÃO DO CRON

1 – Instale o pacote cron

apt-get install cron

2 – Se logue como root no sistema e entre com o comando abaixo:

crontab -e

3 – Configure o contab do usuário de acordo com o exemplo mostrado acima:

53 9 * * * /usr/local/bin/script.sh

# Executa as 9:53, envia saida padrão e erros p/ log
53 9 * * * /usr/local/bin/script.sh > /tmp/script.log 2>&1
# Atualiza hora da maquina sempre ao dar boot
@reboot /usr/sbin/ntpdate pool.ntp.org
# Executa de 5 em 5  minutos
*/5 * * * * /usr/local/bin/script.sh

IMPORTÂNTE: O script deve estar sempre dois minutos a frente do relógio máquina, se não o mesmo não será executado.

4 – Crie o arquivo “/usr/local/bin/script.sh” com o seguinte conteúdo:

vi /usr/local/bin/script.sh
/usr/bin/touch /root/testecron.txt

5 – Torne este arquivo executável

chmod u+x /usr/local/bin/script.sh

6 – Inicie o serviço do cron

/etc/init.d/cron start
TESTANDO O FUNCIONAMENTO DO CRON

Liste os arquivos do diretório “/root” para ver se o arquivo “testecron.txt” foi criado com sucesso.

ls /root
testecron.txt

Logs do cron

tail -f /var/log/cron
ENTRADAS ESPECIAIS DO CRON

Para ver os horario de execução da variaves especiais:

awk '/^[0-9]/ {print $1,$2,$3,$4,$5,$(NF-1)}' /etc/crontab

Executa script.sh ao ligar servidor

@restart /usr/local/bin/script.sh

Executa script.sh de hora em hora. Equivalente X * * * *

@hourly /usr/local/bin/script.sh

Executa script.sh uma vez ao dia. Equivalente X X * * *

@daily /usr/local/bin/script.sh

Executa script.sh uma vez por semana. Equivalente X X * * 0

@weekly /usr/local/bin/script.sh

Executa script.sh uma vez por mês. Equivalente X X 1 * *

@monthly /usr/local/bin/script.sh
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s