Busca


imprimir pdf

Tarefas automatizadas


No Linux, as tarefas podem ser configuradas para se executarem automaticamente a determinado momento e a determinada data. Red Hat Linux está pré-configurado para a execução de certas tarefas de sistema permitindo ter o seu sistema actualizado. Por exemplo, a base de dados é actualizada diariamente. Um administrador de sistema pode utilizar tarefas automatizadas para efectuar backups periódicos, vigiar o sistema, executar scripts personalizados, etc.

Configuração de uma tarefa Cron


O ficheiro de configuração principal de cron, /etc/crontab, contém as seguintes linhas:
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 **0 root run-parts /etc/cron.weekly
42 4 1 **root run-parts /etc/cron.monthly


As quatro primeiras linhas são variáveis que servem a configurar o ambiente no qual as tarefas cron são utilizadas (neste exemplo, bash shell), e a variável PATH define o caminho de acesso utilizado para a execução dos comandos. O resultado das tarefas cron é enviado por e-mail ao nome de utilizador definido pela variável MAILTO. Se a variável MAILTO é uma cadeia vazia (MAILTO=""), nenhum e-mail será enviado. A variável HOME pode ser utilizada para a parametrização do directório a utilizar para a execução dos comandos ou dos scripts.

Cada linha do ficheiro /etc/crontab têm o formato:

minute hour day month dayofweek command

  • minute - número inteiro entre 0 e 59;
  • hour - número inteiro entre 0 e 23;
  • day - número inteiro entre 1 e 31 (se o mês está especificado, o dia deve ser válido);
  • month - número inteiro entre 1 e 12 (ou abreviação do nome do mês );
  • dayofweek - número inteiro entre 0 e 7, 0 ou 7 representando o domingo (ou a abreviação do dia da semana);
  • command - o comando a executar. O comando pode ser um comando como ls /proc >> /tmp/proc ou o comando de execução de um script personalizado de que é o autor.

Para os valores abaixo, um asterisco (*) pode ser utilizado para indicar todos os valores válidos. Por exemplo, um asterisco utilizado para o valor do mês significa uma execução do comando todos os meses (respeitando as restrições dos outros valores).

O hífen (-) posto entre dois números inteiros indica uma gama de números inteiros. Por exemplo, 1-4 corresponde aos números inteiros 1, 2, 3 e 4.

Uma lista de valores separados por virgulas (,) corresponde a uma lista. Por exemplo, 3, 4, 6, 8 corresponde a estes quatro números inteiros específicos.

A barra oblíqua (/) pode ser utilizada para especificar valores escalonados. Para passo um número inteiro numa gama, faça-o seguir a /. Por exemplo, 0-59/2 permite de definir um minuto sobre dois no campo dos minutos. Estes valores escalonados podem também ser utilizados com um asterisco. Por exemplo, o valor */3 pode ser utilizado no campo dos meses para passar de um mês sobre três.
As linhas que começam com o símbolo (#) correspondem a comentários e não são tratados.

Como executar um script automaticamente sobre o servidor dedicado (em crond)?


Primeiro, deve garantir-se que o script funciona em modo shell, ou seja que é capaz de executar-se em linha de comando. Para isso, deve pôr na primeira linha #!/usr/local/bin/php se se trata de um script php, #!/usr/bin/perl se é de um script perl, ou #!/bin/bash para um script shell, depois utilizar o comando chmod 700 o_seu_script sobre o script. Se consegue aceder a telnet/ssh, pode testar a sua execução com ./o_seu_script

Basta depois inserir no ficheiro /etc/crontab, o caminho do script e as horas de execução.

Exemplo:

Implementação de um script automático para a utilização das curvas mrtgs:

*/5 **** root /usr/local/mrtg-2/bin/mrtg /home/ovh/www/mrtg/mrtg-sys/mrtg-sys/mrtg_nsxxxx.ovh.net.cfg >/dev/null 2>/dev/null /home/ovh/www/mrtg/mrtg-sys/mrtg-sys/mrtg_nsxxxx.ovh.net.cfg corresponde ao caminho para o script que queremos executar. */5 **** corresponde ao momento em que queremos a execução. Aqui o script sera lançado todos os 5 minutos.