Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.3k views
in Technique[技术] by (71.8m points)

linux - Proper way to run a script using cron?

When running a script with cron, any executable called inside must have the full path. I discovered this trying to run wondershaper, when many errors showed when it tried to call tc. So my question is, what's the proper way to overcome this problem?

Possible solutions:

  • cd to the executable folder and prepare symbolic links to any other called executable there (not sure if it works - low portability)
  • use full paths in the script (it works - low portability across different distros)
  • exporting a path variable with the needed paths inside the script (not sure if it works)

Well, thanks in advance for anyone helping.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

If you're on linux/bsd/mac you can set some environment variables like PATH right in the crontab, and with that you're generally good to go.

If you're on Solaris, well, I pray for you. But, I do have an answer too: I generally source .profile before running anything:

0 0 * * 0 . /home/myuser/.profile && cd /path && ./script

Mind you, my .profile loads .bash_profile and .bashrc. Just be sure whatever file you source has what you need.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...