通过 ssh 在集群上运行 qsub

通过 ssh 在集群上运行 qsub

我正在设置一个系统,该系统会在本地(Linux)计算机上自动生成计算作业,将它们复制到集群并将它们提交到排队系统。

我尝试避免需要在集群上运行的脚本(这样,只有一个脚本,并且它在我可以调试它的地方运行)。

我已经完成authorized_keys设置,因此在本地创建所有必需的文件后,我从本地案例目录执行此操作:

ssh cluster 'mkdir /home/user/casedir'
scp localdir/* cluster:/home/user/casedir/
ssh cluster 'qsub /home/user/casedir/run_script.sge'

...这会在集群上创建案例目录,复制我需要的所有文件,但在第三行失败,显示:qsub:找不到命令

但是,如果我以交互方式键入ssh cluster以获取集群上的 shell,然后键入 qsub 命令,它将启动作业并运行得很好!

...我在这里犯了什么错?如果相关的话,集群正在运行相当旧版本的 Sun Grid Engine。

我想我可以在本地生成并复制一个 bash 脚本,该脚本将在集群上执行 qsub 命令,但这似乎是一种非常迂回的方法。

答案1

我猜您已将qsub其添加到集群上用户的或文件$PATH中。通过 执行命令时不会读取这些内容。.bashrc.profilessh

如果您使用完整路径,它应该可以正常工作qsub

ssh cluster '/usr/local/bin/qsub /home/user/casedir/run_script.sge'

显然,您需要更改为集群上的/usr/local/bin/qsub任何路径。qsub如果您不知道,请登录集群并运行type qsub

相关内容