1. 程式人生 > >在iterm中用expect指令碼實現ssh, telnet對aix, linux的自動登入

在iterm中用expect指令碼實現ssh, telnet對aix, linux的自動登入

在mac上轉戰iterm以後,才知道自動登入的內部原理,原來可以用expect指令碼做和伺服器的自動互動,當然自動登入只是其中的一小部分功能啦

ssh自動登入:

#!/usr/bin/expect

set timeout 30
spawn ssh [lindex $argv 0]@[lindex $argv 1]
expect {
        "(yes/no)?"
        {send "yes\n";exp_continue}
        "password:"
        {send "[lindex $argv 2]\n"}
}
interact

telnet自動登入(適合有些Linux平臺,會發送預設使用者的情況):
#!/usr/bin/expect

set timeout 30
spawn telnet -l [lindex $argv 0] [lindex $argv 1]
expect {
        "assword:"
        {send "[lindex $argv 2]\n"}
}
interact

telnet自動登入(適合先發送使用者名稱,再發送密碼的情況):

#!/usr/bin/expect
set timeout 20
set name [lindex $argv 1]
set user [lindex $argv 0]
set password [lindex $argv 2]

spawn telnet $name
expect "login:"
send "$user\r"
expect "Password:"
send "$password\r"
interact

用法都是一樣,就是  [指令碼名  使用者名稱 服務名 密碼],例如[~/shell/login_telnet.exp hbocskf 10.45.44.169 hbocskf]

在item的profiles中,設定在General -> Command即可

後續只需要command+o撥出profiles介面,雙擊就能自動登入了,比自帶的終端不知道高到哪裡去了