2013-07-01 76 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'