Executar Shell Scripts PHP com Crontab

Uma alternativa legal utilizando o Crontab do linux (agendador de tarefas) para executar shell scripts feito em PHP.

Antes de mais nada temos que verificar se nosso sistema está rodando o PHP e o php-cli, caso contrário temos que instalar, no meu caso no Ubuntu só tive que usar:

sudo apt-get install php5-cli

Como já tenho o PHP 5 instalado só foi adicionar o pacote php5-cli para rodar os programas feitos em PHP no Terminal do linux como verdadeiros Shell Scripts :)

Agora vamos configurar o crontab para executar determinado arquivo em 1 e 1 minuto.

No terminal:

crontab -e

E vamos adicionar a linha:

* * * * * php /var/www/teste.php

Pronto, estamos passando o comando para executar o arquivo teste.php com o seu caminho completo ex: php /var/www/teste.php.

E nosso arquivo Shell Script teste.php como ele é? Assim:

#!/usr/local/bin/php -q
<?php
$resu = fopen(”/var/www/teste.txt”,”w+”);
fclose($resu);
?>

Simples, estamos criando um arquivo vazio dentro de WWW, não podemos esquecer de dar permissão 755 para nosso programa.

Observe a primeira linha #!/usr/local/bin/php -q

No meu exemplo estou fornecendo o caminho do interpretador PHP do meu sistema /usr/local/bin, para saber o caminho correto do seu sistema crie um arquivo php com a função phpinfo(); e veja o Path completo.

Assim declaro que o arquivo é executado em Bash, detalhe se você não colocar esse parâmetro na primeira linha seu Shell Script em PHP irá funcionar normalmente executando o comando somente em um Terminal, ficando assim:

php /var/www/teste.php

Mas como queremos utilizar o Crontab ele só irá funcionar com esses parâmetros ok.

É uma boa alternativa escrever Shell Scripts em PHP, podemos usar qualquer função do PHP, conexão com banco de dados, includes de classes e funções e etc.

Recomendo uma pesquisa mais avançada sobre o Crontab e Shell Scripts que não é muito difícil, mas fica a dica.

Até mais.


Leave a Reply