2013-03-26 49 views
0

我正在爲2個羣集上的操作編寫腳本。如何使用ssh在兩個羣集之間的qsub腳本中運行本地腳本?

我的目標是隻關注一個集羣,這意味着每個腳本源代碼只在其中一個集羣上。

例如,在集羣AI已經安裝了所有的腳本,現在我想ssh到集B運行這些腳本,而不必在羣集B.重新安裝它們

我知道有像ssh [email protected] 'bash -s' < local_ClusterA_script.sh然後集B bash腳本從ClusterA運行local_ClusterA_script.sh。

現在有,我必須使用ssh從集羣一對集B提交批作業的另一項挑戰,這個批處理作業從集羣A.需要一個腳本

# run.sh : 

#!/bin/bash 

INPUT_ARGS="[email protected]" 
qsub -v argv="$INPUT_ARGS" -l arch=x86_64 -l walltime=10:00:00 -l vmem=8GB -l nodes=1:ppn=6 $CLUSTERA_BIN/run.script 

# run.script 
runprogram() 
{ 
    #Input 
    INPUT_ARGS=`echo $argv` 
    $CLUSTERA_BIN/runprogram.py "$INPUT_ARGS" ; 
} 

所以我的問題出在哪裏集羣B發現$CLUSTERA_BIN/runprogram.py?如何使run.script中的代碼在羣集B上成功運行?

一個命令我認爲它會是ssh [email protected] 'bash -s' < run.sh $MYARGS,但顯然它不會像這樣工作。

回答

2

集羣B必須訪問它需要的文件。所以,你有一些選擇:

  1. 改變你的想法和複印件(指scprsync,...)文件到羣集B.你也可以考慮使用一個版本控制系統(如svngit,... )在多個主機之間同步文件。
  2. 當羣集B需要一個文件時,可以在羣集A上快速獲取它(例如,使用無密碼scp)。
  3. 把你的文件下羣集A和份額的一個目錄(指NFSSMB,...)的目錄到羣集B.
  4. ......
+0

我的經驗是把腳本在可通過網絡訪問的文件系統上,人們通常會這樣做。 – dbeer 2013-03-28 16:23:34

相關問題