Bash

通過 ssh 在集群上執行 qsub

  • September 27, 2015

我正在建立一個系統,它會在本地(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: command not found

但是,如果我以互動方式鍵入ssh cluster以獲取集群上的 shell,然後鍵入 qsub 命令,它會啟動作業並執行得很好!

……我在這裡做錯了什麼?該集群正在執行一個相當舊的 Sun Grid Engine 版本,以防萬一。

我想我可以在本地生成並複制一個 bash 腳本,該腳本將在集群上執行 qsub 命令,但這似乎是一種非常迂迴的方式。

我猜你已經添加qsub到集群上你的使用者$PATH.bashrc或文件中。.profile通過 執行命令時不會讀取這些內容ssh

如果您使用完整路徑,它應該可以正常工作qsub

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

顯然,您需要更改為集群上的/usr/local/bin/qsub任何路徑。qsub如果您不知道,請登錄集群並執行type qsub.

引用自:https://unix.stackexchange.com/questions/230578