我编写了一个脚本,该脚本在终端上运行完美,但是在通过 crontab 调用时出现错误。我花了一段时间才发现问题出在 cron 环境而不是我的脚本上。
所以在网上阅读各种帖子后我尝试了几个选项:
* * * * * PATH=/home/sam/bin:/home/sam/scriptbin/ /path/to/script
没用
* * * * * bash -lc /path/to/script
没用
* * * * * /path/to/script
没用
`PATH=blahdeblah
* * * * * jobdejob` Didn't work
如何更改$PATH
OPENSUSE 中 crontab 的变量或包含在 cron 文件中以使其正常工作。我使用的是 open suse 11。
谢谢!
答案1
两种方式;首先,一些 cron 守护进程允许设置环境变量:
PATH=blahdeblah
* * * * * jobdejob
其次,使用该env(1)
实用程序,然后该实用程序运行实际作业:
* * * * * env PATH=blahdeblah jobdejob
三!在 cron 作业中使用完全限定的路径。不,不,正如 Jeff 所说,有四种方法可以在脚本中设置路径:
#!/bin/sh
PATH=blahdeblah
...
第五,无情的奉献PATH
。