Programar uma tarefa em Linux com Cron e wget

Como realizar uma tarefa programada, na qual se invoque uma página web cada certo tempo por si só, em Linux com Cron e wget.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 22/2/08
Valorize este artigo:
Existem vezes que para um desenvolvimento necessitamos executar uma página cada dia ou cada hora, para realizar periodicamente umas tarefas de manutenção. Podemos fazer com que estas tarefas se possam executar por si só, sem que tenhamos que intervir para nada, através de uma tarefa programada.

Uma tarefa programada nos poupará estar pendentes de um processo que se tenha que realizar todos os dias e ademais nos dará a tranqüilidade de saber que não esqueceremos de realizar a tarefa periódica, porque está programada automaticamente.

Por exemplo, uma tarefa periódica que é típica é a manutenção de um servidor OpenAds (antes PhpAdsNew). Este servidor tem que realizar umas tarefas de manutenção cada pouco tempo, para revisar as prioridades de entrega de banners e fazer um cachê com os banners que estão se distribuindo em um momento dado. De fato, este tema das tarefas programadas aprendi justamente configurando PhpAdsNew. Porém, em geral logo vi que as tarefas programadas são muito interessantes e as configurei para a manutenção de outros web sites da empresa.

Estas tarefas podem ser programadas em um servidor Linux através do Cron, que é um daemon que pode ter uma lista de tarefas para executar. Veremos como configurar uma tarefa em Cron para que se chame e se execute uma página web que será encarregada de fazer as tarefas de manutenção.

1.- Extrair tarefas programadas atualmente no sistema com Cron

Primeiro temos que saber se existem tarefas programadas anteriormente no sistema, com o daemon Cron. Porque se for devemos nos assegurar que não perdemos nenhuma das tarefas ao agregar a nova.

Para extrair todas as tarefas programadas em Cron em Linux, desde a linha de comandos lançamos esta instrução:

crontab -l > cron.txt

Com isto nos criará um arquivo chamado cron.txt onde se armazenarão todas as tarefas programadas, se é que existem. Se não houver tarefas, simplesmente se criará o arquivo vazio.

2.- Editar o arquivo para introduzir a tarefa programada

Logo, podemos editar o arquivo para escrever o comando que executará a tarefa que desejamos processar periodicamente. Para editar um arquivo em Linux utilizaremos um editor de textos como Vi ou Joe.

Eu prefiro usar Joe, porque o Vi é muito complicado e não lembro suas particularidades. O editor Joe, para editar o cron.txt, se invocaria assim:

joe cron2.txt

Uma vez dentro do editor, podemos fazer as mudanças no arquivo de texto. Para introduzir uma tarefa se tem que criar uma nova linha em cron.txt com o comando da tarefa.

Vamos programar uma tarefa que simplesmente executa uma página web, utilizando o comando wget. A linha da tarefa terá uma forma parecida a esta:

0 * * * * wget -q -O /dev/null http://www.dominio.com/manutencao.php

(Caso não se leia bem, o primeiro caractere é um zero e logo há mais adiante um -O que é uma letra "o" maiúscula.)

Com Joe, para salvar as mudanças se faz com CTRL + K D. (Apertando a tecla control, clicamos K, e sem deixar de apertar CTRL, logo clicamos D.)

Para sair de Joe clicamos CTRL + C.

Para obter ajuda, com uma lista de todos os comandos disponíveis, clicamos CTRL + K H.

3.- Carregar a nova lista de tarefas a Cron.

A lista de tarefas que colocamos em cron.txt temos que voltar a introduzi-la dentro de Cron., para que se intere das novas ações que tem que realizar periodicamente.

Utilizaremos o seguinte comando Linux:

crontab cron.txt

Com isso a lista de tarefas programadas se carregará no daemon cron e se executarão periodicamente.






Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato