标签: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 root@192.168.222.$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
原文地址:http://swiki.blog.51cto.com/9500075/1978831