版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/GX_1_11_real/article/details/81167760
前言
为了安全,有时我们会需要修改大量的服务器的登陆密码,关于完成这个工作实际上是有各种方法的,可以使用ansible或expect等工具。
下面就是关于expect脚本的分享(脚本可根据需求更改或完善)
本文使用expect工具,需先安装expect
本脚本在跳板机或对其他服务器进行了免密登陆的服务器上使用效果最佳
补充
为了方便管理,该脚本将调用或产生的文件都放入了/root/gaimi 目录中
脚本使用方法
<1>创建目录
mkdir /root/gaimi
<2>添加要更改密码的ip
将要更改密码的ip添加入/root/gaimi/gai_ip.txt中
<3>执行脚本
执行/root/gaimi/gaimi.sh
<4>查看密码
cat /root/gaimi/gaimi.log
gaimi.sh 脚本内容
#!/usr/bin/expect
#需先安装except yum -y install expect
#ip必须都已推公钥方可成功
#修改为不同密码脚本,每台服务器随机生成16位的密码
#密码的生成根据mkpasswd的规则
for i in `cat /root/gaimi/gai_ip.txt`
do
xinmi=`mkpasswd -l 16 -C 3`
ssh $i echo "$xinmi |passwd --stdin root"
if [ $? -eq 0 ];then
echo "$i is successfully "
echo "`date` $i $xinmi" >>/root/gaimi/gaimi.log
else
echo "`date` $i is error"
echo "`date` $i is error" >>/root/gaimi/gaimi.log
continue
fi
done
“`