《mypasswd》文件格式:
#注释
name:ip:user:password
name:ip:user:password
使用方法:
%./login.exp <name> 登陆name指定的服务器
%./login.exp h [l] 打印帮助信息,联合l选项打印多有信息
login.exp:
#! /usr/bin/expect -f set arg1 [lindex $argv 0] set arg2 [lindex $argv 1] if {"$arg1" == ""} { puts "Usage:" puts "./thisfile server_name" puts "use h \[l\] for help and server list" exit } set passfilename "passwd" puts "Use passwd file: $passfilename" set passfile [open $passfilename r] if {"$arg1" == "h"} { while {[gets $passfile line] != -1} { set line [string trim $line] if {"$arg2" == "l"} { puts $line continue } if {[string index $line 0] == "#"} { puts $line; continue } } close $passfile exit } else { set fund "filed" while {[gets $passfile line] != -1} { #puts $line set line [string trim $line] set fields [split $line ":"] if {[lindex $fields 0] == "$arg1"} { puts $line set hostLongIP [lindex $fields 1] set user [lindex $fields 2] set passwd [lindex $fields 3] set fund "ok" break } } if {"$fund" != "ok"} { puts "ERROR" close $passfile exit 404 } } close $passfile send_user "\n\nooooooooooooooooo $user@$hostLongIP ooooooooooooooooooo\n\n" spawn ssh -l $user $hostLongIP expect { "password:" {send $passwd; send "\n"} } interact
另附《exploring expect》下载地址