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.