如何在cronjob中设置SGE的PATH

时间:2017-01-30 13:58:06

标签: shell cron sungridengine

我的qsub位于SGE中。因此,当通过cronjob运行sh脚本时,我收到错误:qsub:command not found。 目前设置的路径是: PATH = / USR / bin中:/ bin中

3 个答案:

答案 0 :(得分:2)

您可以设置路径或使用qsub的完整路径作为@Jens提及。

但是,这种情况通常也意味着您的登录shell正在寻找一个为您设置一堆环境变量的文件(包括SGE_ROOT)。运行cronjob时,不会获取该文件。因此,除了修复路径(或提供qsub的完整路径)之外,您还需要找到该文件,然后在脚本的顶部,您需要获取该文件(或者通过并手动完成设置每个相关的环境变量。)

在我的系统上,该文件位于/u/local/etc/profile.d/sge.sh(所以我只将. /u/local/etc/profile.d/sge.sh放在我的脚本顶部),但文件的位置因设置而异。您只需要在登录时搜索哪个文件设置为SGE_ROOT(以及其他几个相关的环境变量,例如SGE_ARCH)。

(如果你很难找到它是哪个文件,你会发现这个答案很有用:https://unix.stackexchange.com/a/154971/157777。)

答案 1 :(得分:0)

您可以在脚本开头设置PATH,例如与

#!/bin/sh
PATH=$(/usr/bin/getconf PATH):/some/other/dir:/yet/another/dir
...rest of script...

或修改crontab条目以提供带有

的扩充初始PATH
10 20 * * * PATH=/usr/bin:/bin:/some/other/dir:/yet/another/dir /path/to/script.sh

答案 2 :(得分:0)

添加PATH中的完整qsub之后 您可以找到SGE_ROOT并将其添加到crontab

crontab中这样写:

SGE_ROOT=<root_name>
PATH= xxxxxxxx