expect批量分發密鑰文件
阿新 • • 發佈:2017-11-04
expect
在做批量分發的時候第一次是兩個腳本來完成,後來做了一個expect嵌套,完成了一個腳本進行集成
前提要求服務器需要安裝expect
[root@130 scripts]# yum -y install expect
腳本分析:
#!/bin/bash key_file=‘/root/.ssh/id_dsa‘ ####################### 判斷秘鑰文件是否存在 ###################### if [ -f $key_file ] then echo "秘鑰文件已存在,準備下一步分發" else ssh-keygen -t dsa -P ‘‘ -f /root/.ssh/id_dsa > /dev/null 2>&1 fi ####################### 批量分發秘鑰 ######################### for ip in {128..140} do /usr/bin/expect << EOF > /dev/null 2>&1 set password "root" spawn ssh-copy-id -i $key_file "-p 22 [email protected].$ip" expect { "yes/no" {send "yes\r";exp_continue} "*password" {send "root\r"} } expect eof EOF ####################### 顯示分發狀態 ########################## if [ $? -eq 0 ] then echo "192.168.222.$ip 秘鑰分發成功" #echo 0 else echo "192.168.222.$ip 秘鑰分發失敗" #echo 1 fi done
腳本效果實現效果:
[root@130 scripts]# ./send_file 秘鑰文件已存在,準備下一步分發 192.168.222.128 秘鑰分發失敗 192.168.222.129 秘鑰分發失敗 192.168.222.130 秘鑰分發成功 192.168.222.131 秘鑰分發成功 192.168.222.132 秘鑰分發成功 192.168.222.133 秘鑰分發失敗 192.168.222.134 秘鑰分發失敗 192.168.222.135 秘鑰分發成功 192.168.222.136 秘鑰分發失敗 192.168.222.137 秘鑰分發失敗 192.168.222.138 秘鑰分發失敗 192.168.222.139 秘鑰分發失敗 192.168.222.140 秘鑰分發失敗
!!!顯示分發成功的服務器就可以直接無密碼在服務器上進行登陸了
本文出自 “小小小平凡” 博客,謝絕轉載!
expect批量分發密鑰文件