Como executar um arquivo php com crontab?

Como executar um arquivo php com crontab?

Eu tenho o Ubuntu configurado com lamp e queria saber o que eu digitaria para iniciar uma página php às 2 da manhã todos os dias. Ainda estou estudando como funciona o crontab, então não posso testar para ver qual funciona.

Então se eu tiver algo assim como colocaria na página php com parâmetros?

30 18 * * * http://myip/mypage.php?action=do_something

Eu entraria assim ou com caminho absoluto? Assim

30 18 * * * /var/www/mypage.php?action=do_something

Responder1

Você definitivamente deseja usar o método um. Aquilo é

30 18 * * * wget -O - -q -t http://myip/mypage.php?action=do_something

Isso fará com que o arquivo seja obtido com o wget (um programa de download de arquivos) através da rota usual da web. Isso significa que quando o apache tratar a solicitação, fará com que o php interprete esse script e você terá executado o script.

Tenho quase certeza de que também é possível executar isso usando o método 2, chamando o aplicativo php-cli e passando o caminho para o seu script como argumento, mas na maioria dos casos isso não faria nenhuma diferença real.

Responder2

O comando que você coloca no seu cron depende de como o arquivo php foi realmente escrito. Se o arquivo for um script em um servidor web, o wget conforme mencionado funcionará bem. Observe que com o comando acima -O significa que a saída será gravada no arquivo, -q é silencioso, -t é para limitar o número de novas tentativas.

No entanto, se o script php for um script shell, o wget será inútil. Nesse caso, o arquivo deve ser executável e seu comando cron ficaria assim:

30 18 * * * /usr/bin/env php /path/to/script

informação relacionada