我有一台linux机器,上有一些文件包,如何把这些文件包分发到100台服务器上,同时把文件包解压

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我有一台linux机器,上有一些文件包,如何把这些文件包分发到100台服务器上,同时把文件包解压相关的知识,希望对你有一定的参考价值。

这100台服务器ip1~100,文件包都是tar,用shell脚本实现

设置无密码传输:

1.在你这台主机上生成公钥

ssh-keygen -t rsa

一直回车

2.复制生成的公钥到所有服务器

即文件~/.ssh/id_rsa.pub

3.传输:

#!/bin/sh
for((i=1;i<101;i++))
do
scp file.tar root@$ip$i:/tmp
echo file.tar " is copied"
done

追问

复制生成的公钥到所有服务器时也要输入密码,那就要输入100次啊,有没有不用输密码,一个脚本就可以完成向这100台服务器发送文件包,还有怎么把复制过去的文件包解压

追答

第一次近建立连接恐怕就是如此麻烦,也许你可以试试命令
echo passwd | scp -r user@ip:/path
把复制过去的文件解压没搞过,远程解压不知道怎么搞

参考技术A

先设置ssh无密码登陆,然后:

#!/bin/sh
for i in `seq 1 100`
do
scp file.tar uaer@ip$i:/path/to/save
done

追问

你这个脚本我也知道,关键是scp怎么无密码传输,还有后面解压文件包,你只写了一部分

追答

配置ssh信任,像楼上说的那样。至于将公钥拷贝到这么多台主机上面,貌似有一个叫expect的软件可以,你百度一下。

 

解压就简单了,脚本中scp命令后面加一条:

ssh host tar xf /path/to/file.tar

追问

看来只能这样了,你的答案还可以

本回答被提问者采纳

以上是关于我有一台linux机器,上有一些文件包,如何把这些文件包分发到100台服务器上,同时把文件包解压的主要内容,如果未能解决你的问题,请参考以下文章

如何从linux的文件拷贝到另一台机器

如何从linux的文件拷贝到另一台机器

如何将我的所有 python 库从一台机器转移到另一台机器[重复]

33 linux集群架构

Linux将许多内部IP映射到一个外部IP [关闭]

将ubuntu12.04系统备份然后在另一台电脑上安装