I'm trying to call a shell script every 5 minutes, witch executes php file under root.

# crontab -l
*/5 * * * * /home/regularuser/call.sh


-rw-rw-rw-  1 root   root        162 Jun  6 23:40 call.php
-rwxr-xr-x  1 root   root         66 Jun  7 01:20 call.sh

call.sh contents:

php -q /home/regularuser/call.php
echo "request processed"

My problem is that my php file doesn't get executed via crontab. However, if I call call.sh - everything works perfectly.

I'm new to crontab and shell scripting, so any advice/resources are welcome.

  • 1
    Try dumping your environment with the call.sh script, that may make the problem clear. – whitequark Jun 7 '10 at 15:04

Remember that Cron will run with a very minimal environment. Certain important things like PATH may be different then what you expected.

Try logging the output of the command to syslog, like this:

*/5 * * * * /home/regularuser/call.sh 2>&1 | logger -t call.sh

This will print any stdout and stderr to your system logs, usually to /var/log/messages . From here, use 'grep call.sh /var/log/messages' to see your error, which will likely be 1-2 lines.

I often prefer to log errors like this, instead of spamming email. But this is only useful for short messages.

Once you find the error message, update your question with the error. Or, you might be able to figure this out for yourself ;)

| improve this answer | |

Are you sure php is on the $PATH known by crontab? What if you use the full path (/what/ever/bin/php ?)

Also, cron is supposed to send the output of your command to your mail box. What does it says?

| improve this answer | |

maybee help add path to crontab command. if this command find php binary path like this:

$ whereis php
php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz

use this command with path - in my case /usr/bin/php:

*/5 * * * * /usr/bin/php -q /home/regularuser/call.php
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.