Erlo

linux expect 批量修改主机密码

2020-07-07 23:30:04 发布   462 浏览  
页面报错/反馈
收藏 点赞

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.

 

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认