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