編寫expect腳本實現(xiàn)自動化遠程登錄

一泌辫、概述


·我們通過Shell可以實現(xiàn)簡單的控制流功能巩步,如:循環(huán)虱饿、判斷等哩俭。但是對于需要交互的場合則必須通過人工來干預绷跑,有時候我們可能會需要實現(xiàn)和交互程序如telnet服務(wù)器等進行交互的功能。而expect就使用來實現(xiàn)這種功能的工具凡资。

二砸捏、腳本代碼詳解


##############################################
  
#!/usr/bin/expect  
  
set timeout 30  
  
spawn ssh -l username 192.168.1.1  
  
expect "password:"  
  
send "ispass\r"  
  
interact  
  
##############################################
[#!/usr/bin/expect]

·這一行告訴操作系統(tǒng)腳本里的代碼使用那一個shell來執(zhí)行。這里的expect其實和linux下的bash隙赁、windows下的cmd是一類東西垦藏。
·注意:這一行需要在腳本的第一行。

2.[set timeout 30]

·基本上認識英文的都知道這是設(shè)置超時時間的伞访,現(xiàn)在你只要記住他的計時單位是:秒

3.[spawn ssh -l username 192.168.1.1]

·spawn是進入expect環(huán)境后才可以執(zhí)行的expect內(nèi)部命令膝藕,如果沒有裝expect或者直接在默認的SHELL下執(zhí)行是找不到spawn命令的。所以不要用 “which spawn“之類的命令去找spawn命令咐扭。好比windows里的dir就是一個內(nèi)部命令,這個命令由shell自帶,你無法找到一個dir.comdir.exe 的可執(zhí)行文件蝗肪。
·它主要的功能是給ssh運行進程加個殼袜爪,用來傳遞交互指令。

4. [expect "password:"]

·這里的expect也是expect的一個內(nèi)部命令薛闪,有點暈吧辛馆,expectshell命令和內(nèi)部命令是一樣的,但不是一個功能豁延,習慣就好了昙篙。這個命令的意思是判斷上次輸出結(jié)果里是否包含“password:”的字符串,如果有則立即返回诱咏,否則就等待一段時間后返回苔可,這里等待時長就是前面設(shè)置的30秒

5. [send "ispass\r"]

·這里就是執(zhí)行交互動作,與手工輸入密碼的動作等效袋狞。
·溫馨提示: 命令字符串結(jié)尾別忘記加上 “\r”焚辅,如果出現(xiàn)異常等待的狀態(tài)可以核查一下。

6. [interact]

·執(zhí)行完成后保持交互狀態(tài)苟鸯,把控制權(quán)交給控制臺同蜻,這個時候就可以手工操作了。如果沒有這一句登錄完成后會退出早处,而不是留在遠程終端上湾蔓。如果你只是登錄過去執(zhí)行一段命令就退出,可改為[expect eof]

三砌梆、實現(xiàn)演示


·1默责、首先創(chuàng)建一個expect腳本ssh_expect,文件內(nèi)容如下:

#!/usr/bin/expect -f
set hostname [lindex $argv 0]
set user [lindex $argv 1]
set passwd [lindex $argv 2]
set timeout 30
set force_conservative 1
if {$force_conservative} {
  set send_slow {128 .1}
}
spawn ssh $user@$hostname;
expect {
    "*continue connecting (yes/no)?" { send -s "yes\r"; exp_continue }
    "*assword:" {
        send -s "$passwd\r";
    }
}
interact

·2么库、然后定義一些命令別名傻丝,比如:

alias  h101='ssh_expect 192.168.0.101 <user> <password>'
alias  h102='ssh_expect 192.168.0.102 <user> <password>'

這些別名可以寫到~/.bashrc文件中
然后執(zhí)行 h101 就可以自動登錄192.168.0.101機器了。


參考文獻:

http://www.jb51.net/article/72609.htm
http://www.cnblogs.com/Javame/p/4281637.html
http://www.linuxidc.com/Linux/2014-02/96262.htm
http://blog.csdn.net/zhuying_linux/article/details/6657020
http://www.cnblogs.com/iloveyoucc/archive/2012/06/25/2561179.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末诉儒,一起剝皮案震驚了整個濱河市葡缰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌忱反,老刑警劉巖泛释,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異温算,居然都是意外死亡怜校,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門注竿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茄茁,“玉大人魂贬,你說我怎么就攤上這事∪雇纾” “怎么了付燥?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長愈犹。 經(jīng)常有香客問我键科,道長,這世上最難降的妖魔是什么漩怎? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任勋颖,我火速辦了婚禮,結(jié)果婚禮上勋锤,老公的妹妹穿的比我還像新娘饭玲。我一直安慰自己,他們只是感情好怪得,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布咱枉。 她就那樣靜靜地躺著,像睡著了一般徒恋。 火紅的嫁衣襯著肌膚如雪蚕断。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天入挣,我揣著相機與錄音亿乳,去河邊找鬼。 笑死径筏,一個胖子當著我的面吹牛葛假,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播滋恬,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼聊训,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了恢氯?” 一聲冷哼從身側(cè)響起带斑,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎勋拟,沒想到半個月后勋磕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡敢靡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年挂滓,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啸胧。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡赶站,死狀恐怖幔虏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情贝椿,我是刑警寧澤所计,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站团秽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏叭首。R本人自食惡果不足惜习勤,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望焙格。 院中可真熱鬧图毕,春花似錦、人聲如沸眷唉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽冬阳。三九已至蛤虐,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肝陪,已是汗流浹背驳庭。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留氯窍,地道東北人饲常。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像狼讨,于是被迫代替她去往敵國和親贝淤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 一政供、概述 ·我們通過Shell可以實現(xiàn)簡單的控制流功能播聪,如:循環(huán)、判斷等鲫骗。但是對于需要交互的場合則必須通過人工來干...
    babybus_hentai閱讀 745評論 0 0
  • 請不要轉(zhuǎn)載 背景介紹 Expect 程序主要用于人機對話的模擬犬耻,就是那種系統(tǒng)提問,人來回答 yes/no 执泰,或者賬...
    羽風之歌閱讀 53,530評論 12 46
  • Ubuntu的發(fā)音 Ubuntu茸苇,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音沦寂。了解發(fā)音是有意...
    螢火蟲de夢閱讀 99,369評論 9 467
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,176評論 2 33
  • 脫離了KTV里嘈雜的環(huán)境学密,脫離了世俗的酒文化,帶著幾分醉意传藏,坐在河邊伴著徐來的清風腻暮,昏暗的月光,內(nèi)心平靜而雜...
    T伊恩閱讀 268評論 0 1