我正在尝试在 crontab 中 qsub 一个脚本。在 crontab txt 文件中,我尝试了:
0 1 * * * qsub /script.sh
Run Code Online (Sandbox Code Playgroud)
我收到的错误是“/bin/sh: qsub: 找不到命令。” 我尝试过很多类似的迭代,并在网上查找但没有成功。我将不胜感激任何帮助。
cron在一组有限的环境变量下运行的程序被执行。特别是,由于它不读取您的 shell 启动文件(.bashrc、.profile、.cshrc等等),因此它不会有您的$PATH设置;$PATH可能是简单的事情,比如/usr/bin:/bin.
您可以为单个命令设置 PATH,如下所示:
0 1 * * * PATH=/directory/containing/qsub:/usr/bin:/bin qsub /script.sh
Run Code Online (Sandbox Code Playgroud)
还可以全局设置环境变量;此类设置将应用于从您执行的所有命令crontab:
PATH=/directory/containing/qsub:/usr/bin:/bin
0 1 * * * qsub /script.sh
Run Code Online (Sandbox Code Playgroud)
man 5 crontab,或参见此处,了解有关编写 crontab 的更多信息。
如果您想查看 cron 作业的环境是什么样的,您可以临时将此行添加到 crontab 中:
* * * * * printenv > cron-env
Run Code Online (Sandbox Code Playgroud)
等到下一分钟,然后cat ~/cron-env- 然后从 crontab 中删除该行,这样它就不会继续执行。
(你的脚本真的在根目录下吗?为什么不在你的主目录下?)
| 归档时间: |
|
| 查看次数: |
2624 次 |
| 最近记录: |