O utilitário cron executa comandos em um ambiente diferente do seu ambiente shell e pode até estar usando um shell diferente do seu shell padrão. Para ver como é seu ambiente cron, você pode usar o comando env
, por exemplo, adicione o seguinte crontab por um minuto:
* * * * * env > ~/cronenv
Após alguns minutos, inspecione o arquivo ~/cronenv
para ver o ambiente cron (retirado de Como simular o ambiente o cron executa um script com? ). Você pode compará-lo ao seu ambiente shell para ajudar a depurar o erro relacionado ao cron. Você também pode executar o script usando o ambiente cron:
env - 'cat ~/cronenv' /bin/sh
Você também pode tentar modificar seu script para fins de depuração:
#!/bin/bash
ls -ld /home/*
ls -ld /home/*/domains/*
find /home/*/domains/*/public_html/ -name "*.php" -mtime -1 | while read line; do
echo "$line"
done
Execute isso como um cronjob e veja se você obtém o mesmo erro usando um comando diferente (por exemplo, o comando ls
).