Unix SSH会话中断
我有一个项目,其中主服务器在4个从属服务器上执行脚本(1个从属服务器=主服务器) 使用以下语句并行调用所有4个从机(&S):Unix SSH会话中断,unix,ssh,Unix,Ssh,我有一个项目,其中主服务器在4个从属服务器上执行脚本(1个从属服务器=主服务器) 使用以下语句并行调用所有4个从机(&S): 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/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\u data\u param*通过ssh连接到远程IP,并在循环中运行各种命令
我面临的问题是,即使在特定SSH会话完成之前,SSH会话也会完成并迭代下一个循环语句:
我已附上废料数据参数,供您参考:
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'
读取行时
做
c=“n”
对于$line中的单词
做
如果[“$c”=“n”];然后
ssh$python\u server\u ip-n-p 1754 sh/data/lpc/scripts/remote\u scraping.sh$word\u match$word
完成
ssh$python_server_ip-n-p 1754 sh/data/lpc/scripts/remote_matching.sh$word_match
完成一个老生常谈的诀窍可能是在连续的命令之间留出足够的时间来执行sleep语句
比如说
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'
读取行时
做
c=“n”
对于$line中的单词
做
如果[“$c”=“n”];然后
ssh$python\u server\u ip-n-p 1754 sh/data/lpc/scripts/remote\u scraping.sh$word\u match$word
睡眠10;
完成
ssh$python_server_ip-n-p 1754 sh/data/lpc/scripts/remote_matching.sh$word_match
完成