Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I am having a hard time to run a cron job in Debian 6.
Basically i have a sample php script test.php that just adds a line of string(on every execution) to a text file named people.txt
Both test.php and people.txt are located on my Apache document root /var/www directory. The script works fine standalone, but when i want to execute it every minute (for example) through a Cron Job it does not work.
I setup a Cron Job as a root user, so when i run "crontab -e" as root user i see this line on Nano
*/1 * * * * /var/www/test.php
when i run /etc/init.d/cron status i see message
'cron is running'
But my people.txt file is not getting updated
Any advise on how to make Cron Jobs run on my system?
I did not have shebang in my script.
Added the above parameters to crontab entry, restarted the cron, but still no change.
Standalone the script runs just fine.
Maybe the problem is with the cron in the system and not with this particular script?
Any steps you would suggest to debug?
I'd check /var/log/cron (or the equiv on your system), but its the case that the env given to cron jobs is minimal hence its recommended to specify full/absolute pathnames for cmds & data files used.
You could post the script content if you want
Adding the absolute path fixed the issue and the cron job works fine.
If i want to have my test.php script outside Apache document root directory (for example in my home directory /home/haykz) what should i change in the Crontab entry?
Adding the absolute path fixed the issue and the cron job works fine.
Great.
Quote:
If i want to have my test.php script outside Apache document root directory (for example in my home directory /home/haykz) what should i change in the Crontab entry?
You just need to change the path to the script. Eg you'd have something like:
Code:
*/1 * * * * php -f /home/haykz/test.php
However, you should say which user you want this job to run as. Ie you should add that to the crontab of the appropriate user. Have a look at the crontab man page, and post back if you have more questions.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.