I created a script to do something (after I reduced it just to echo "IS FINALLY WORKING" for testing purpose). If I type
#bash /var/www/html/somedir/script.sh
it works ok.
The problem is that I need a cron to access it and it doesn't work.
To set up the cron I used:
crontab -e
15 * * * * /var/www/html/somedir/script.sh
or
15 * * * * bash /var/www/html/somedir/script.sh
I see no result at all.
Also I tried to log it
15 * * * * /var/www/html/somedir/script.sh > cronscriptlog.log
The log is empty.
The os is CentOS 5.5.
Easy to miss simple things sometimes.
The other thing to check is the cron environment, it'll run it every minute with this so just comment it out after it's given you output once.
* * * * * root env > /tmp/cronenv.log
There's always a difference between the Bash environment and the cron environment.
Make sure
/var/www/html/somedir/script.sh
doesn't rely on anything outside cron's default PATH. CentOS has the default PATH set to/sbin:/bin:/usr/sbin:/usr/bin
.You may wish to create cron jobs like this:
or
to get an execution environment similar to that of your command line.
Are there any relevant messages in the cron log file
/var/log/cron
on a CentOS system?Check the mail for the account that is trying to run the script, that's where cron sends any output it gets from the script.
You have only captured stdout from ypur script you can capture stderr too with
&> cronscriptlog.log
.