又是一年,感叹时光飞逝,感叹自己又老了。给大家带来迟到的新年祝福,同时也和大家一样继续linux道路上坚持前进。
今天的博客内容标题写的很详细。在没有管理工具如 ansible的情况下,如何实现批量对服务器集群执行命令。进入正题,下面是脚本内容:
#!/bin/bash
rm -rf /root/.ssh/known_hosts
#当我们远程过一台机器再次远程需要输入密码,第一次远程时需要输入yes回车,密码回车。删掉本地远程主机记录文件,使每次远程主机时屏幕呈现同样的内容。无论第一次远程,还是多次远程的机器,在执行ssh时,屏幕都要先输入yes回车。
for i in {1..254}
do
expect << EOF
set timeout 30
#延长expect超时时间。expect默认时间10s,如果此时间内不能出现expect等待的内容,则expect退出。
spawn ssh 192.168.4.$i
expect "continue" {send "yes\n"}
expect "password" {send "123456\n"}
expect "#" {send "touch /9999.txt\n"}
expect "#" {send "exit\n"}
#expect默认最后一行不执行,没有任何意义,但是最后一行必须存在,否则会影响到上面一行真正想要执行的命令。
EOF
done
以上就是脚本的全部内容,如果有什么问题,欢迎留言。
转载于:https://blog.51cto.com/13450962/2074046