Primeiro, valide seu comando para funcionar corretamente na linha de comando:
/usr/bin/env php /path/to/script.php arguments
Em segundo lugar, valide seu cron
em execução:
ps auxw | grep cron
Deve haver uma linha como (destaques com ^
meu)
root 1537 0.0 0.0 19112 336 ? Ss 2012 1:03 cron
^^^^ ^^^^
Se cron
estiver sendo executado corretamente, verifique outras mensagens cron do syslog:
sudo zgrep CRON /var/log/syslog*
Por padrão, várias tarefas são executadas como root
, configuradas nas pastas /etc/cron.daily
, /etc/cron.weekly
etc. Se não houver saída, seu cron não está funcionando corretamente. Tente reiniciá-lo com
sudo /etc/init.d/cron restart
E verifique o conteúdo de /var/log/syslog
para mensagens de erro e prossiga para o passo 1 novamente
Se cron
estiver sendo executado corretamente, vá para verificar a caixa de correio do usuário que tem esse comando em crontab
. Substitua USERNAME.
sudo -u USERNAME mail
ou sudo -u USERNAME menos / var / mail / USERNAME
Se a execução do comando cron falhar, deverá enviar um email para lá.
Você deve usar /usr/bin/env php /path/to/script.php
como seu comando, em vez de apenas php
. /usr/bin/env
seleciona automaticamente php
binário.
Para argumentos, não, você precisa ler os argumentos separadamente. Isso é fora do tópico para este site, mas dê uma olhada em esta página de manual . Você pode ler esses argumentos de $argv
. Não funciona da mesma forma que com scripts chamados através do servidor web.