Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

We need to have /usr/local/bin in cron's path for all users. Is there a way to set it system-wide, without needing to edit each individual user's crontab?

We've tried adding PATH to /etc/crontab:

# grep PATH /etc/crontab
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

But when users have this in their crontab:

$ crontab -l | grep PATH
* * * * * echo $PATH > /tmp/current_cron_path

...it reveals that their path is still set to default:

$ cat /tmp/current_cron_path
/usr/bin:/bin
share|improve this question
1  
General hint: Writing "it didn't work" will not usually get you a useful reply. Always describe how exactly it didn't work, that is, exactly what did you do, and what exactly was the result. –  sleske Jul 19 '10 at 10:14
    
Please note that relying on echo in your cron is possibly unreliable. –  Oliver Salzburg Jun 12 '12 at 15:07

3 Answers 3

You can configure your PATH in crontab configuration file as shown in the first code except there. First specify the env variables, then specify jobs.

share|improve this answer
    
does not work on ubuntu, even after restarting cron –  grosser Jul 19 '10 at 7:01
1  
@grosser: Well, it should. Please post your complete crontab (edit your answer), along with the output it produces and why you believe it does not work. Then we'll see... –  sleske Jul 19 '10 at 10:06
    
Also note that the format of the VARIABLE=value lines is somewhat more restricted than in a shell script: Each assignment must be on a line of its own, and you may not use variables on the right-hand-side (e.g. PATH=$PATH:/bla will not work). –  sleske Jul 19 '10 at 10:12
    
i updated the question, setting the PATH in an individual crontab did work, just the global change did not work –  grosser Jul 21 '10 at 6:10
    
Try specifying PATH variables in each crontab where you need it. Probably it's done due to security issues. BTW, in ubuntu (I've checked) PATH is defined in /etc/crontab and /etc/cron.d/anacron in ubuntu. So it seems that it is not being inherited from /etc/crontab. Just try defining it in root's crontab (sudo crontab -e) –  igorp1024 Jul 21 '10 at 14:53

Setting the PATH variable should work in Ubuntu, how do you say it is not working ?

Refer #14: Linux Crontab: 15 Awesome Cron Job Examples

share|improve this answer
    
i updated the question, setting the PATH in an individual crontab did work, just the global change did not work –  grosser Jul 21 '10 at 6:22

If you're able to be root, can you try editing /etc/init.d/cron and changing the PATH there? I haven't tested this, but would be interesting to check.

share|improve this answer
    
did not seem to work, i just added PATH=xxx into /etc/init.d/cron but the * * * * * echo $PATH output was the same –  grosser Aug 5 '10 at 7:21

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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