shell expect 教程

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


執行的時候 ./login.expect  10.236.152.10  zack  zack

就能登陸到152.10的服務器

有了這個命令,對於多個服務器管理就有有很大幫助, 比如要分發文件到N個服務器 直接添加 發送地址和接收地址用scp 或者rsync 發送即可.

非常方便.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章