expect 是一個用來與終端交互的一個命令, 必須先安裝才能使用, 我的系統是ubuntu 的直接apt-get install expect 就行了,
expect 的關鍵字就四個
expect -- 期望輸入
send -- 代碼提交expect 的內容
spawn --單起一個進程, 比如ssh , scp,rsync等等
interact --這個允許用戶交互
比如我要做一個ssh 登陸的簡單腳本 login.expect
#!/usr/bin/expect
set timeout 30
set host [lindex $argv 0]
set username [lindex $argv 1]
set passwd [lindex $argv 2]
spawn ssh $username@$host
expect {
"yes/no" {send "yes\r"; exp_continue}
"*password*" {send "$passwd\r"}
}
interact
就能登陸到152.10的服務器
有了這個命令,對於多個服務器管理就有有很大幫助, 比如要分發文件到N個服務器 直接添加 發送地址和接收地址用scp 或者rsync 發送即可.
非常方便.