1.第一个脚本:登陆脚本(已知可能多组密码,自动验证登陆)
#!/usr/bin/expect -f set passwdlist {public {1 2 2x} wls81 {1 2 zx}} foreach {u p} $passwdlist { spawn ssh $u@localhost lassign $p s(1) s(2) s(3) #把密码列表分给数组 set i 1 puts $s(1),$s(2),$s(3) expect { *yes/no* {send "yes\r";exp_continue} *assword:* {puts $u,$s($i);send "$s($i)\r"; incr i ; exp_continue} #三次试密码,不成功再试用不同的密码试 *public* {send "echo Gooooood\r";interact} #如果登陆成功就,echo Goooood } }
解释:
用passwdlist 列出所有的用户与之对应的密码组
之后来个foreach
亮点是这里数组的应用,三次试密码机会,就用i++的方式来调用三个不同的密码