我正在为 2 个集群上的操作编写脚本。
我的目标是只关注一个集群,这意味着每个脚本源代码都只在一个集群上。
例如,在集群 AI 中安装了所有脚本,现在我想通过 ssh 连接到集群 B 以运行这些脚本,而无需在集群 B 上再次安装它们。
我知道使用 bash 脚本,ssh root@ClusterB 'bash -s' < local_ClusterA_script.sh
然后 Cluster B 从 ClusterA 运行 local_ClusterA_script.sh。
现在还有一个挑战,我必须使用 ssh 从集群 A 提交集群 B 上的批处理作业,这个批处理作业需要来自集群 A 的脚本。
# run.sh :
#!/bin/bash
INPUT_ARGS="$@"
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 root@ClusterB 'bash -s' < run.sh $MYARGS
,但显然它不会像这样工作。