expect批量修改密码

在工作过程中经常需要批量对多台机器进行操作,如果每台都手动操作那效率实在是太低了。这时就需要一种自动交互的方式对若干台机器进行批量处理,expect就扮演着这样一种角色。本文以批量修改密码为例浅谈expect的用法 。Expect需要Tcl编程语言的支持,首先需要确定机器安装有expect,tcl。
[root@rac1 scripts]# rpm -qa|grep tcl
tcl-8.4.13-4.el5
tclx-8.4.0-5.fc6
[root@rac1 scripts]# rpm -qa|grep expect
expectk-5.43.0-5.1
expect-devel-5.43.0-5.1
expect-5.43.0-5.1
以上显示说明该机器装有expect和tcl
以下是批量修改密码脚本
用whereis expect确定expect位置
[root@rac1 ~]# whereis expect
expect: /usr/bin/expect

#!/usr/bin/expect
#设置变量
set timeout 10
set USERNAME etnet
set PASSWORD 123456
#一个循环,说明对哪些机器进行操作
foreach host {
192.168.151.89
192.168.151.90
} {
spawn ssh 
-l root ${host}
#ssh首次登陆的验证,exp_continue会继续执行下一循环
expect {
        "no)?" {send "yes\r";exp_continue}
        "password:" {send "123456\r"}
}
#每个expect捕获一个提示符,send发送一条命令,命令以\r结尾。
expect "]*"
send "passwd ${USERNAME}\r"
expect "password:"
send "${PASSWORD}\r"
expect "password:"
send "${PASSWORD}\r"
expect "]*"
send "exit\r"
}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27181165/viewspace-775806/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27181165/viewspace-775806/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值