3

我正在尝试在 crontab 中 qsub 一个脚本。在 crontab txt 文件中,我尝试了:

    0 1 * * * qsub /script.sh

我得到的错误是“/bin/sh: qsub: command not found。” 我已经尝试了一堆类似的迭代,并在网上四处寻找,但没有成功。我会很感激任何帮助。

4

2 回答 2

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,或查看此处,了解有关编写 crontab 的更多信息。

如果您想查看 cron 作业的环境是什么样的,可以暂时将此行添加到您的 crontab 中:

* * * * * printenv > cron-env

等到下一分钟,然后cat ~/cron-env- 然后从您的 crontab 中删除该行,这样它就不会继续执行。

(你的脚本真的在根目录下吗?为什么不在你的主目录下?)

于 2013-03-04T20:06:50.683 回答
0

对我有用的方法是我首先在 /etc/profile.d/sge.sh 下获取 sge.sh

然后 crontab 将获得正确的环境变量并能够在 crontab 下运行 qsub。

于 2021-03-24T08:46:42.597 回答