Eu tenho um arquivo PHP que deve enviar um e-mail por dia agendado por crontab. Aqui está o meu crontab:
45 23 * * * php /var/www/html/linus/class/runnable/dailyStaffReport.php
Percebi que não está funcionando, ou seja, o e-mail não está sendo enviado. Então eu tentei o seguinte:
00 11 * * * php /var/www/html/linus/class/runnable/dailyStaffReport.php
>> /var/log/crontab.linus.log 2>&1
Nota: o horário aqui não é importante, estou constantemente mudando para o propósito do teste
Isso não funcionou. O arquivo crontab.linus.log
não foi criado.
Ao verificar o arquivo /var/log/cron
, notei que meu cron é executado
Feb 25 11:22:01 shoutcast01 CROND[3395]: (apache) CMD (php
/var/www/html/linus/class/runnable/dailyStaffReport.php
>> /var/log/crontab.linus.log 2>&1)
E, por último, se eu executar manualmente php /var/www/html/linus/class/runnable/dailyStaffReport.php
, recebo o email imediatamente na minha caixa de entrada. Eu até escrevi alguns echoes
no script PHP na esperança de tentar e ver se em algum lugar ao longo da linha o script falha.
[root@shoutcast01 ~]# php /var/www/html/linus/class/runnable/dailyStaffReport.php
LOADING STAFF USERS...
COMPUTING STAFF WORK TIME...
BUILDING CHART...
SAVING CHART...
WRITING DOWN THE CHART...
SENDING THE EMAIL...
1
DONE.
Em um assunto semelhante, tenho outro arquivo que está programado para enviar e-mails a cada 2 minutos e funciona perfeitamente.
[root@shoutcast01 ~]# crontab -u apache -l
22 11 * * * php /var/www/html/linus/class/runnable/dailyStaffReport.php
>> /var/log/crontab.linus.log 2>&1
*/2 * * * * php /var/www/html/linus/class/runnable/dispatchEmail.php
Para resumir
- O email é entregue se eu executar o script manualmente no terminal.
- o email não é entregue, mas o log do cron informa que o script foi executado.
- Não consigo registrar nada com
>> /var/log/crontab.linus.log 2>&1
Alguma dica sobre o que posso fazer para tentar resolver esse problema?