本文将要为您介绍的是linux expect 批量修改主机密码,具体实现方法:ip.txt
192.168.0.105 123455
192.168.0.106 123456
192.168.0.107 123457
192.168.0.108 123458
passwd.sh
#!/bin/bash
for ip in `awk '{print $1}' ip.txt`
do
pass=`grep $ip ip.txt |awk '{print $2}'`
echo $ip $pass
expect action.exp $ip $pass
done
action.exp
#!/bin/expect
set ip [lindex $argv 0]
set passwd [lindex $argv 1]
set timeout 30
spawn ssh root@$ip
expect {
"yes/no" {send "yesr";exp_continue}
"password" {send "$passwdr"}
}
expect "#"
send "echo 408950 |passwd --stdin rootr"
send "exitr"
expect eof
使用
[root@localhost ~]# sh passwd.sh
192.168.0.105 123456
spawn ssh root@192.168.0.105
root@192.168.0.105's password:
Last login: Tue Jul 7 22:37:38 2020 from 192.168.0.104
[root@localhost ~]# echo 123456 |passwd --stdin root
Changing password for user root.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# exit
logout
Connection to 192.168.0.105 closed.
linux expect 批量修改主机密码就为您介绍到这里,感谢您关注懒咪学编程c.lanmit.com.
本文地址:https://c.lanmit.com/czxt/Linux/118896.html