Executar scripts PHP automaticamente através do cron com CURL
Como podemos executar uma página PHP como uma tarefa programada utilizando CURL.Por Alfredo Anaya
Publicado em: 25/10/07
Frequentemente, apresentamos a necessidade de ter que programar alguma tarefa diária, semanal etc...como um envio massivo de e-mail, ou umas consultas pesadas ao nosso banco de dados, e fazê-lo além disso, nas horas de menor atividade de nosso servidor.
Para muitos de nós é fácil programar um script com php que realize estas tarefas, porém, para a maioria dos servidores tem somente o módulo de php instalado, o qual não nos permite executar estes scripts através da linha de comandos diretamente.
A solução a este problema consiste em utilizar CURL. Este pacote vem incorporado na maioria das distribuições Linux, e em caso contrário, pode ser baixado através deste endereço
http://curl.haxx.se.
CURL é uma ferramenta para transferência de arquivos com sintaxe URL, que envia a saída padrão à tela. Podemos fazer a seguinte prova:
# curl http://www.google.com
Também podemos re-enviar a saída e salvá-la em um arquivo
# curl http://www.google.com > google.htm
CURL suporta diferentes protocolos FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE, LDAP e alguns mais que poderão consultar em sua web. Ademais, instala-se uma biblioteca com um conjunto de funções que podem ser usadas desde php, mas isto é outra história.
Continuando com nosso caso, podemos executar agora um script php desde a linha de comandos, simplesmente escrevendo isto:
# curl http://localhost/meuscript.php
Suponhamos que vamos executar um script que envia os e-mails de nosso boletim de correio chamado boletim.php, porém este se encontra hospedado em uma pasta protegida de nosso servidor web. Neste caso executamos o script passando-lhe o usuário e senha para acessar ao diretório protegido.
#curl -u username:password http://localhost/protegido/boletim.php
Para programar no cron de nosso linux esta tarefa e que seja executada automaticamente de forma periódica, devemos conhecer a rota completa onde está instalado o curl que habitualmente costuma ser em /usr/bin.
Agora, editaremos nosso arquivo de tarefas de cron (por exemplo, com o comando crontab -e), e adicionamos esta linha:
30 4 * * * /usr/bin/curl -u username:password http://localhost/protegido/boletim.php
Isto fará com que todos os dias às 4:30 da madrugada se execute o script boletim.php de maneira automática. Se desejar conhecer mais informações sobre a programação de tarefas consulte a ajuda (man crontab).
Artigo cedido por
ADR Formación
Comentários do artigo
 | curl em um periodo determinado Por: cpix
| 19/5/10 |
Olá, muito bom o artigo.
Mas tbm queria saber, ao invés de executar o arquivo na mesma hora a cada dia, como fazer para que ele seja executado, por exemplo, a cada 30 minutos, ou 5 minutos.
Grato.
dacmh2o@hotmail.com