首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为多个远程脚本执行维护单个ssh连接?

如何为多个远程脚本执行维护单个ssh连接?
EN

Stack Overflow用户
提问于 2017-03-27 17:53:09
回答 2查看 268关注 0票数 1

我在系统A中有一个文件夹,其中包含数百万个文件,我在同一个网络中有系统B。

计算机A->/home/nsadmin/文件夹- 192.168.150.90

计算机B-> /home/nsadmin/automate.sh - 192.168.150.91

假设在我的文件夹目录中,所有的100万个文件都是dumped.And,我现在所做的是

代码语言:javascript
复制
1 echo "Sending the files to Computer B"
2 scp -r /home/nsadmin/$folder_name nsadmin@192.168.150.91:/home/nsadmin/$folder_name
3 ssh nsadmin@192.168.150.91 "sh /home/nsadmin/$folder_name/automation.sh $folder_name"
4 rm -rf $folder_name/

根据上面的脚本,我所做的是

  • 第1行-> Echo语句
  • 第2行->将文件夹的全部内容复制到计算机B
  • 第3行->远程执行以folder_name为参数运行的脚本
  • 第4行->从计算机A中移除文件夹

这似乎是非常糟糕的编程。

因此,我的想法是维护一个单ssh连接,并将每个文件传递给连接仍在的机器B。

我会向你解释清楚

代码语言:javascript
复制
ssh to remote machine open
 --- subtask which should run in a loop till all the files in folder are done
 --- subtask is copying each file to remote machine and running the automate.sh script with argument as file_name not folder_name,(logic i will modify)
 --- After all the files are copyed done the loop
ssh to remote machine closed

我面对的问题是:

  1. 所有文件复制所需的大量时间
  2. 没有估计所有文件复制的时间
  3. 多个ssh连接
  4. 系统B中的空间问题
  5. 系统B更像是一个工人,它有一定的逻辑,它占用的空间更少。
  6. 这种ssh连接很难实现自动化。

关于如何解决这个问题,我有什么建议,我已经解释过了。如果有人不理解这些问题,请评论。

我在小伪码中的要求:

代码语言:javascript
复制
for i in $(find /home/nsadmin/Folder -type f);do
   scp -r /home/nsadmin/$i nsadmin@192.168.150.91:/home/nsadmin/$i
   ssh nsadmin@192.168.150.91 "sh /home/nsadmin/automation.sh $i"
done
EN

回答 2

Stack Overflow用户

发布于 2017-03-27 18:18:08

如果您需要连续运行这些自动化作业,我建议您使用芹菜。芹菜允许你创建一个任务队列,并将它们分发给工人。您甚至可以像cron作业一样安排在特定时间运行的任务。如果需要,可以在单独的机器上创建工作人员,但请注意,如果这样做,您的系统可能无法容忍分区。另一个用于在多台机器上配置和安装软件的软件是可抗。您可以编写一个不可用的剧本来在您的工作机器上配置和安装软件,这样他们就可以开始工作了。这样你就不用每次都用手把它们装好了。

票数 2
EN

Stack Overflow用户

发布于 2017-03-28 07:26:21

使用ControlMaster。它将只为您将要发出的所有命令/scps打开单个TCP连接。在~/.ssh/config添加中设置非常简单:

代码语言:javascript
复制
Host 192.168.150.91
  ControlMaster auto
  ControlPath ~/.ssh/sockets/%C

然后,只需运行您的伪代码而不进行任何修改,它将执行得更快(通过单个TCP连接)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43053278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档