批量修改用户密码
#!/usr/bin/env bash
rpm -qa |grep expect
if [ $? -ne 0 ];then
yum -y install expect
fi
/usr/bin/expect<<EOF
set timeout 30
spawn ssh-keygen
expect {
".ssh/id_rsa)" { send "\n"; exp_continue }
"Overwrite (y/n)?" { send "y\n"; exp_continue }
"no passphrase):" { send "\n"; exp_continue }
"again:" { send "\n"; exp_continue }
}
EOF
for i in $(cat ip.txt)
do
read -p "请输入${i}的密码:" pwd
/usr/bin/expect <<EOF
set timeout 30
# 发送公钥给对方服务器
spawn ssh-copy-id root@$i
expect {
"yes/no" { send "yes\n"; exp_continue }
"password:" { send "${pwd}\n"; exp_continue }
}
expect eof
EOF
ping -c1 $i &>/dev/null
if [ $? -eq 0 ];then
read -p "请输入新密码:" password
ssh root@$i "echo $password | passwd --stdin root"
if [[ $? -eq 0 ]];then
echo "$i" >> ip_ok.txt
else
echo "${i}修改失败" >> ip_file.txt
fi
else
echo "${i}不通畅" >> ip_file.txt
fi
done