shell脚本批量推送公钥

针对大量的主机时,推送公钥需要一个个的输入IP和对面的密码显得异常的麻烦,所以写了个shell脚本进行批量推送。
先yum安装一个expect软件,这个软件是负责交互的。
这里先把需要推送的主机IP写入到一个文本中,后续读区的IP从这个文本中调用。
shell脚本批量推送公钥

#!/bin/bash
all=`cat /opt/ip.txt`     #定义一个变量,查看文本中的内容
for i in $all    #定义i变量,逐个查看
do
password="123456" #定义对方的密码 
/usr/bin/expect -c "      #expect命令的路径
        spawn ssh-copy-id root@$i  #推送ip为逐个查看的变量i
        expect {
         \"*(yes/no)\" { send \"yes\r\";exp_continue }   #当匹配到yes/no时,回答yes
        \"*password\" { send \"$password\r\"; exp_continue } #当匹配到password的时候回答的密码为我们定义的
        }     
expect eof"
done

这样就可以直接免交互的进行推送了。

猜你喜欢

转载自blog.51cto.com/13760226/2319010