我正在尝试在crontab中配置脚本。在crontab txt文件中,我尝试了:
0 1 * * * qsub /script.sh
我得到的错误是“/ bin / sh:qsub:command not found。” 我尝试了一堆类似的迭代,并在网上看了一下但没有成功。我很感激任何帮助。
答案 0 :(得分:4)
在cron
下执行的程序使用一组有限的环境变量运行。特别是,由于它不会读取您的shell启动文件(.bashrc
,.profile
,.cshrc
,等等),因此它不会显示您的$PATH
设置; $PATH
可能会像/usr/bin:/bin
一样简单。
您可以为单个命令设置PATH,如下所示:
0 1 * * * PATH=/directory/containing/qsub:/usr/bin:/bin qsub /script.sh
您还可以全局设置环境变量;此类设置将适用于从crontab
执行的所有命令:
PATH=/directory/containing/qsub:/usr/bin:/bin
0 1 * * * qsub /script.sh
man 5 crontab
,或查看here,了解有关编写crontabs的更多信息。
如果您想查看cron作业的环境,您可以暂时将此行添加到您的crontab:
* * * * * printenv > cron-env
等到下一分钟的顶部,然后cat ~/cron-env
- 然后从crontab中删除该行,使其不再继续执行。
(你的脚本真的在根目录下吗?为什么它不在你的主目录下?)
答案 1 :(得分:0)
对我有用的方法是我首先在 /etc/profile.d/sge.sh 下获取 sge.sh
然后crontab会得到正确的环境变量并且能够在crontab下运行qsub。