新聞中心
使用expect實(shí)現(xiàn)自動(dòng)登錄的腳本,網(wǎng)上有很多,可是都沒有一個(gè)明白的說明,初學(xué)者一般都是照抄、收藏??墒菫槭裁匆@么寫卻不知其然。本文用一個(gè)最短的例子說明腳本的原理。

創(chuàng)新互聯(lián)于2013年成立,先為鳳翔等服務(wù)建站,鳳翔等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為鳳翔企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
腳本代碼如下:
#!/usr/bin/expect set timeout 30 spawn ssh -l username 192.168.1.1 expect "password:" send "ispass\r" interact
1. [#!/usr/bin/expect]
這一行告訴操作系統(tǒng)腳本里的代碼使用那一個(gè)shell來執(zhí)行。這里的expect其實(shí)和linux下的bash、windows下的cmd是一類東西。
注意:這一行需要在腳本的第一行。
2. [set timeout 30]
基本上認(rèn)識(shí)英文的都知道這是設(shè)置超時(shí)時(shí)間的,現(xiàn)在你只要記住他的計(jì)時(shí)單位是:秒
3. [spawn ssh -l username 192.168.1.1]
spawn是進(jìn)入expect環(huán)境后才可以執(zhí)行的expect內(nèi)部命令,如果沒有裝expect或者直接在默認(rèn)的SHELL下執(zhí)行是找不到spawn命令的。所以不要用 “which spawn“之類的命令去找spawn命令。好比windows里的dir就是一個(gè)內(nèi)部命令,這個(gè)命令由shell自帶,你無法找到一個(gè)dir.com 或 dir.exe 的可執(zhí)行文件。
它主要的功能是給ssh運(yùn)行進(jìn)程加個(gè)殼,用來傳遞交互指令。
4. [expect “password:”]
這里的expect也是expect的一個(gè)內(nèi)部命令,有點(diǎn)暈吧,expect的shell命令和內(nèi)部命令是一樣的,但不是一個(gè)功能,習(xí)慣就好了。這個(gè)命令的意思是判斷上次輸出結(jié)果里是否包含“password:”的字符串,如果有則立即返回,否則就等待一段時(shí)間后返回,這里等待時(shí)長就是前面設(shè)置的30秒
5. [send “ispass\r”]
這里就是執(zhí)行交互動(dòng)作,與手工輸入密碼的動(dòng)作等效。
溫馨提示: 命令字符串結(jié)尾別忘記加上“\r”,如果出現(xiàn)異常等待的狀態(tài)可以核查一下。
6. [interact]
執(zhí)行完成后保持交互狀態(tài),把控制權(quán)交給控制臺(tái),這個(gè)時(shí)候就可以手工操作了。如果沒有這一句登錄完成后會(huì)退出,而不是留在遠(yuǎn)程終端上。
本篇文章到此結(jié)束,如果您有相關(guān)技術(shù)方面疑問可以聯(lián)系我們技術(shù)人員遠(yuǎn)程解決,感謝大家支持本站!
成都網(wǎng)站推廣找創(chuàng)新互聯(lián),老牌網(wǎng)站營銷公司
成都網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)(www.cdcxhl.com)專注高端網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì)制作,網(wǎng)站維護(hù),網(wǎng)絡(luò)營銷,SEO優(yōu)化推廣,快速提升企業(yè)網(wǎng)站排名等一站式服務(wù)。IDC基礎(chǔ)服務(wù):云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗(yàn)、服務(wù)器租用、服務(wù)器托管提供四川、成都、綿陽、雅安、重慶、貴州、昆明、鄭州、湖北十堰機(jī)房互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)。
分享標(biāo)題:Linux實(shí)現(xiàn)自動(dòng)登錄的實(shí)例講解
標(biāo)題鏈接:http://www.dlmjj.cn/article/dpoejhe.html


咨詢
建站咨詢
