批量修改linux服务器密码脚本程序
代码如下: #!/bin/bash oldpassword=$1 newpassword=$2 for i in `cat servip.txt` do echo “ssh to $i via root user.” ip=$i /usr/bin/expect <<flagEOF set time 30 spawn ssh root@$ip expect { “*yes/no*” {send “yes\r”; exp_continue} “*password:*” {send ”${oldpassword}\r”} } expect ”*#” send “export LANG=en\r” expect ”*#” send “passwd” expect “*password:” send ”${newpassword}\r” expect “*password:” send ”${newpassword}\r” expect ”*#” send “exit\r\r” interact expect flagEOF flagEOF echo “modified root’s password of $i.” done 执行命令 ./mod_password.sh oldpassword newpassword 说明: 1、该脚本执行需要满足两个前提:一是批量修改的服务器root密码均一样;二是执行命令的linux服务器安装了expect命令。 2、执行命令时,需要传入两个参数,第一个是原密码;第二个是修改后的新密码。 3、servip.txt与mod_password.sh 脚本在同一路径下,且文档中,每行只能有一个服务器ip地址。