Bash 在crontab中使用qsub?

Bash 在crontab中使用qsub?,bash,crontab,Bash,Crontab,我正在尝试在crontab中发布脚本。在crontab txt文件中,我尝试了: 0 1 * * * qsub /script.sh 我得到的错误是“/bin/sh:qsub:command未找到。” 我尝试了一系列类似的迭代,并在网上查看了一下,但没有成功。非常感谢您的帮助。在cron下执行的程序使用有限的环境变量集运行。特别是,由于它不读取您的shell启动文件(.bashrc,.profile,.cshrc,等等),因此它不会有您的$PATH设置$PATH可能是类似于/usr/b

我正在尝试在crontab中发布脚本。在crontab txt文件中,我尝试了:

    0 1 * * * qsub /script.sh
我得到的错误是“/bin/sh:qsub:command未找到。”
我尝试了一系列类似的迭代,并在网上查看了一下,但没有成功。非常感谢您的帮助。

cron
下执行的程序使用有限的环境变量集运行。特别是,由于它不读取您的shell启动文件(
.bashrc
.profile
.cshrc
,等等),因此它不会有您的
$PATH
设置
$PATH
可能是类似于
/usr/bin:/bin
的简单内容

您可以设置单个命令的路径,如下所示:

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中删除该行,使其不会继续执行


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

我的方法是首先在/etc/profile.d/sge.sh下找到sge.sh


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

谢谢,我使用您的建议使它工作了。我的qsub位于/usr/local/bin/。对我有效的命令是0 1***PATH=/usr/local/bin:/usr/bin:/bin qsub/scriptpath/script.sh。另外,我的脚本没有存储在我的根目录中。谢谢你的帮助!