我有一台linux机器,上有一些文件包,如何把这些文件包分发到100台服务器上,同时把文件包解压
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我有一台linux机器,上有一些文件包,如何把这些文件包分发到100台服务器上,同时把文件包解压相关的知识,希望对你有一定的参考价值。
这100台服务器ip1~100,文件包都是tar,用shell脚本实现
设置无密码传输:
1.在你这台主机上生成公钥
ssh-keygen -t rsa
一直回车
2.复制生成的公钥到所有服务器
即文件~/.ssh/id_rsa.pub
3.传输:
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
把复制过去的文件解压没搞过,远程解压不知道怎么搞
先设置ssh无密码登陆,然后:
#!/bin/shfor 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台服务器上,同时把文件包解压的主要内容,如果未能解决你的问题,请参考以下文章