2013-07-01 78 views
0

我有一个项目,主服务器在4个从服务器上执行脚本(1个从服务器=主服务器)。SSH会话中断

所有4奴隶被要求使用平行陈述&像这样:

sh /data/lpc/scripts/Remote_Execution/Python0/scrap_data_param.sh Python0 $Python0_ip & 
    sh /data/lpc/scripts/Remote_Execution/Python1/scrap_data_param.sh Python1 $Python1_ip & 
    sh /data/lpc/scripts/Remote_Execution/Python2/scrap_data_param.sh Python2 $Python2_ip & 
    sh /data/lpc/scripts/Remote_Execution/Python3/scrap_data_param.sh Python3 $Python3_ip 

脚本* scrap_data_param *使得远程IP地址ssh连接并运行在循环的各种命令。

,我面对的是,SSH会话完成,并在接下来的循环语句迭代甚至一个特定的SSH会话结束前的问题:

我重视scrap_data_param.sh供您参考:

while read line 
do 
c="n" 
for word in $line 
do 
if [ "$c" = "n" ]; then 
ssh $python_server_ip -n -p 1754 sh /data/lpc/scripts/remote_scraping.sh $word_match $word 
done 
ssh $python_server_ip -n -p 1754 sh /data/lpc/scripts/remote_matching.sh $word_match 

done <'ssss.txt' 

因此,循环在完成一条语句之前迭代下一条ssh $python_server_ip -n -p 1754 sh /data/lpc/scripts/remote_matching.sh $word_match语句。

回答

0

一个老生常谈的诀窍可能是在连续的命令之间用充足的时间放置睡眠语句。

说喜欢..

while read line 
do 
c="n" 
for word in $line 
do 
if [ "$c" = "n" ]; then 
ssh $python_server_ip -n -p 1754 sh /data/lpc/scripts/remote_scraping.sh $word_match $word 
sleep 10; 
done 
ssh $python_server_ip -n -p 1754 sh /data/lpc/scripts/remote_matching.sh $word_match 
done <'ssss.txt'