Linux expect 批量修改服务器密码

摘要:https://www.cnblogs.com/lulin9501/p/15009622.html

摘要2:https://blog.51cto.com/u_13620944/2440856

批量修改密码

#!/usr/bin/env bash
while read line
do
    ip=`echo $line | awk '{print $1}'`
    password=`echo $line | awk '{print $2}'`
    
    /usr/bin/expect <<-EOF
    spawn ssh root@$ip
    set timeout 5
    expect {
        "yes/no" { send "yes\r"; exp_continue }
        "password" { send "$password\r"; }
    }
    expect "*#"
    send "passwd \r"
    expect {
        "password" { send "new_password\r"; exp_continue } #new_password换成你的新密码
        "password" { send "new_password\r"; }
    }
    expect eof
    EOF
done < iplist.txt

首先你需要把服务器的ip地址和原来的密码分为两列写入iplist.txt文件,这个文件与脚本处于一个目录:

#cat iplist.txt

192.168.1.1 123456

192.168.1.2 654321
  • set timeout 5 设置超时为5秒;
  • send 的作用就是自动向系统发送命令;
  • expect 的作用说白了就是send发送命令后预判命令行会出现的结果,根据结果再进行send发送命令;
  • expect eof 退出expect的交互模式

将日期写入文档

#!/bin/bash 
ip=$1
#传递参数
user=$2
password=$3
expect <<EOF  
    set timeout 10 
    spawn ssh $user@$ip 
    expect { 
        "yes/no" { send "yes\n";exp_continue } 
        "password" { send "$password\n" }
    } 
		#一个交互用一个expect{} 括起来,这个交互就是登陆的
    expect "]#" { send "date>>123.txt\n" } 
    expect "]#" { send "exit\n" } 
		#退出
expect eof 
EOF

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值