在linux中,使用第三方工具expect,实现交互式操作的命令的自动无人工干预操作。 具体操作步骤如下。
1、创建用户/密码对文件
复制代码代码示例:
# cat user.password
usr2:abcd2 usr3:abcd3
2、创建expect.sh脚本文件
复制代码代码示例:
#!/usr/local/bin/expect
if {$argc<2} { send_user "usage: $argv0 username password\n" exit } set username [lindex $argv 0] set password [lindex $argv 1] send_user "execute:$argv0 $username $password\n" spawn -noecho passwd [lindex $argv 0] #-noecho不回显spawn正在调用的命令 expect { "*口令*"{send "$password\n"} "*word*"{send "$password\n"} } expect { "*口令*"{send "$password\n"} "*word*"{send "$password\n"} } #expect "*word*" #send "$password\n" expect eof exit
3、创建autochg.sh文件,在此文件中调用expect.sh
复制代码代码示例:
#!/usr/bin/bash
for i in `cat $1` do USERNAME=${i%:*} #自右起第一个冒号后的字符都不要 PASSWORD=${i#*:} #自左起第一个冒号前的字符都不要 ./expect.sh $USERNAME $PASSWORD done
# chmod u+x expect.sh autochg.sh |