Board logo

subject: Programar uma tarefa em Linux com Cron e wget [print this page]


Existem vezes que para um desenvolvimento necessitamos executar uma pgina cada dia ou cada hora, para realizar periodicamente umas tarefas de manuteno. Podemos fazer com que estas tarefas se possam executar por si s, sem que tenhamos que intervir para nada, atravs 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 tranqilidade de saber que no esqueceremos de realizar a tarefa peridica, porque est programada automaticamente.

Por exemplo, uma tarefa peridica que tpica a manuteno de um servidor OpenAds (antes PhpAdsNew). Este servidor tem que realizar umas tarefas de manuteno cada pouco tempo, para revisar as prioridades de entrega de banners e fazer um cach com os banners que esto se distribuindo em um momento dado. De fato, este tema das tarefas programadas aprendi justamente configurando PhpAdsNew. Porm, em geral logo vi que as tarefas programadas so muito interessantes e as configurei para a manuteno de outros web sites da empresa.

Estas tarefas podem ser programadas em um servidor Linux atravs 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 pgina web que ser encarregada de fazer as tarefas de manuteno.

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 no perdemos nenhuma das tarefas ao agregar a nova.

Para extrair todas as tarefas programadas em Cron em Linux, desde a linha de comandos lanamos esta instruo:

crontab -l > cron.txt

Com isto nos criar um arquivo chamado cron.txt onde se armazenaro todas as tarefas programadas, se que existem. Se no 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 no 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 mudanas 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 pgina 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 no se leia bem, o primeiro caractere um zero e logo h mais adiante um -O que uma letra "o" maiscula.)

Com Joe, para salvar as mudanas 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 disponveis, 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 aes 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 executaro periodicamente.

Programar uma tarefa em Linux com Cron e wget

Por: Bruno Rosa

Perfil do Autor

Bruno administrador de sistemas linux, analista de sistemas e CEO do SermpiHost | hospedagem de sites - Servio de hospedagem de sites no Brasil.

(Artigonal SC #3332412)

Fonte do Artigo - http://www.artigonal.com/tec-de-informacao-artigos/programar-uma-tarefa-em-linux-com-cron-e-wget-3332412.html




welcome to loan (http://www.yloan.com/) Powered by Discuz! 5.5.0