Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using Relative Paths in Crontab

Tags:

php

cron

centos

I am attempting to use relative paths in my crontab file on CentOS 6.4, so that I do not have to repeat the same absolute path over and over again. At the top of my crontab file, located here: /etc/crontab, I have:

SHELL=/bin/bash
PATH=/var/www/html/crons
MAILTO=""
HOME=/

And each of my commands looks like:

*/2 * * * * root /usr/bin/php "cronfile.php" >> "logs/cronfile_"`date +\%Y\%m\%d`".log"

I'm expecting that it'll run the cronfile.php PHP file in the /var/www/html/crons directory, and save the output from this to /var/www/html/crons/logs/cronfile.log. However, the file is not being run and the log file is not being created.

The command works fine if I run just:

/usr/bin/php "cronfile.php" >> "logs/cronfile_"`date +\%Y\%m\%d`".log"

from the command line after cding into the /var/www/html/crons directory.

Please advise, thanks.

like image 375
Wes Cossick Avatar asked Jun 11 '26 12:06

Wes Cossick


1 Answers

After many trials and research, I discovered that the solution was using the HOME= variable, not the PATH= variable, like so:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""
HOME=/var/www/html/crons

And then each of the lines would just look like:

*/2 * * * * root /usr/bin/php cronfile.php >> logs/cronfile_`date +\%Y\%m\%d`.log

Hope this helps someone else with the same issue I had in the future.

like image 129
Wes Cossick Avatar answered Jun 14 '26 05:06

Wes Cossick



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!