0

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

使用 & 语句并行调用所有 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*使 ssh 连接到远程 IP 并循环运行各种命令。

我面临的问题是 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一个语句。

4

1 回答 1

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'
于 2013-07-01T18:57:30.603 回答