A sintaxe da entrada crontab parece correta. De fato, se você editar seu crontab usando " crontab -e
" (como deveria), receberá um erro se especificar uma entrada sintontática inválida do crontab de qualquer maneira.
Em primeiro lugar, é /path_to_my_php_script/info.php
executado corretamente a partir da linha de comando?
Em caso afirmativo, ele também funciona corretamente assim:
/bin/sh -c "(export PATH=/usr/bin:/bin; /path_to_my_php_script/info.php </dev/null)"
Se isso funciona, funciona assim?
/bin/sh -c "(export PATH=/usr/bin:/bin; /path_to_my_php_script/info.php </dev/null >/dev/null 2>&1)"
O passo (3) é semelhante ao modo como o cron executará seu programa (conforme documentado em "man 5 cron".
O problema mais provável que você está tendo é que o cron PATH está usando para executar seu programa é muito restritivo. Portanto, você pode adicionar algo como o seguinte na parte superior da sua entrada crontab (você precisará adicionar os diretórios que seu script precisar):
PATH=~/bin:/usr/bin/:/bin
Observe também que o cron usará por padrão /bin/sh
, e não o bash. Se você precisar do bash, adicione-o também ao início do seu arquivo crontab:
SHELL=/bin/bash
Observe que ambas as alterações afetarão todas as entradas do crontab. Se você quiser modificar esses valores para o seu info.php
programa, faça algo assim:
*/2 * * * * /bin/bash -c ". ~/.bashrc; /path_to_my_php_script/info.php"
Também vale mencionar que em um sistema configurado para "correio" (em outras palavras, um sistema com um MTA configurado [sendmail / postfix / etc]), toda a saída dos programas crontab é enviada automaticamente por e-mail. Um sistema desktop padrão do Ubuntu não terá o correio local configurado, mas se você estiver trabalhando em um servidor, basta digitar "mail" em um terminal para ver todos os cron mails. Isso também se aplica ao at
comando " ".