#!/bin/bash
for ip in `cat iplist.txt`
do
pwd=`mkpasswd -l 12 -s 0 -C 0`
grep -q $ip /root/pwd.log&&passwd=$(grep $ip /root/pwd.log|cut -d: -f2)||passwd=123456
expect -c "
spawn ssh root@$ip passwd
expect {
\"*yes/no*\" { send \"yes\r\";exp_continue }
\"*password*\" { send \"$passwd\r\"; }
}
expect {
\"*New password:\" { send \"$pwd\r\";exp_continue }
\"Retype new password:\" { send \"$pwd\r\";exp_continue }
\"*#\" { send \"exit\r\"; }
}
"
[[ -f /root/pwd.log ]]&&sed -i "/^$ip/d" /root/pwd.log
echo "$ip:$pwd" >>/root/pwd.log
done
其中passwd=123456是初始密码
新密码放在/root/pwd.log里面
ip列表放在脚本目录下的iplist.txt里面
本文出自 “linux开源-不断的总结....” 博客,请务必保留此出处http://fantefei.blog.51cto.com/2229719/1551265
expect 批量修改密码(无密码ssh登入就不要用这个了)
原文地址:http://fantefei.blog.51cto.com/2229719/1551265