国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Linux > 正文

利用expect命令實(shí)現(xiàn)Shell自動(dòng)化交互的方法詳解

2019-10-26 18:56:00
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

背景

linux腳本中有很多場(chǎng)景是進(jìn)行遠(yuǎn)程操作的,例如遠(yuǎn)程登錄ssh、遠(yuǎn)程復(fù)制scp、文件傳輸sftp等。這些命令中都會(huì)涉及到安全密碼的輸入,正常使用命令時(shí)是需要人工手動(dòng)輸入密碼并接受安全驗(yàn)證的。為了實(shí)現(xiàn)自動(dòng)化遠(yuǎn)程操作,我們可以借用expect的功能。

expect是一個(gè)免費(fèi)的編程工具語(yǔ)言,用來(lái)實(shí)現(xiàn)自動(dòng)和交互式任務(wù)進(jìn)行通信,而無(wú)需人的干預(yù)。expect是不斷發(fā)展的,隨著時(shí)間的流逝,其功能越來(lái)越強(qiáng)大,已經(jīng)成為系統(tǒng)管理員的的一個(gè)強(qiáng)大助手。expect需要Tcl編程語(yǔ)言的支持,要在系統(tǒng)上運(yùn)行expect必須首先安裝Tcl。

expect的安裝

expect是在Tcl基礎(chǔ)上創(chuàng)建起來(lái)的,所以在安裝expect前我們應(yīng)該先安裝Tcl。

(一)Tcl 安裝

主頁(yè): http://www.tcl.tk

下載地址: http://www.tcl.tk/software/tcltk/downloadnow84.tml

1.下載源碼包

wget http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz 

2.解壓縮源碼包

tar xfvz tcl8.4.11-src.tar.gz 

3.安裝配置

cd tcl8.4.11/unix ./configure --prefix=/usr/tcl --enable-shared make make install 

注意:

1、安裝完畢以后,進(jìn)入tcl源代碼的根目錄,把子目錄unix下面的tclUnixPort.h copy到子目錄generic中。

2、暫時(shí)不要?jiǎng)h除tcl源代碼,因?yàn)閑xpect的安裝過(guò)程還需要用。

(二)expect 安裝 (需Tcl的庫(kù))

主頁(yè): http://expect.nist.gov/

1.下載源碼包

wget http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download 

2.解壓縮源碼包

tar xzvf expect5.45.tar.gz 

3.安裝配置

cd expect5.45 ./configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=../tcl8.4.11/generic make make install ln -s /usr/tcl/bin/expect /usr/expect/bin/expect 

expect

expect的核心是spawn、expect、send、set。

spawn 調(diào)用要執(zhí)行的命令

expect 等待命令提示信息的出現(xiàn),也就是捕捉用戶輸入的提示: send 發(fā)送需要交互的值,替代了用戶手動(dòng)輸入內(nèi)容 set 設(shè)置變量值 interact 執(zhí)行完成后保持交互狀態(tài),把控制權(quán)交給控制臺(tái),這個(gè)時(shí)候就可以手工操作了。如果沒(méi)有這一句登錄完成后會(huì)退出,而不是留在遠(yuǎn)程終端上。 expect eof 這個(gè)一定要加,與spawn對(duì)應(yīng)表示捕獲終端輸出信息終止,類似于if....endif

expect腳本必須以interact或expect eof結(jié)束,執(zhí)行自動(dòng)化任務(wù)通常expect eof就夠了。

其他設(shè)置

設(shè)置expect永不超時(shí) set timeout -1 設(shè)置expect 300秒超時(shí),如果超過(guò)300沒(méi)有expect內(nèi)容出現(xiàn),則退出 set timeout 300

expect編寫語(yǔ)法

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 犍为县| 瓦房店市| 郑州市| 桐柏县| 雷山县| 阿瓦提县| 厦门市| 鹿泉市| 隆昌县| 祁东县| 江安县| 林周县| 青州市| 皋兰县| 乌鲁木齐县| 辛集市| 东城区| 滨州市| 海淀区| 雷山县| 吴旗县| 威海市| 中卫市| 沾化县| 竹山县| 藁城市| 绥芬河市| 登封市| 交口县| 洪洞县| 肇东市| 汽车| 桦甸市| 杂多县| 驻马店市| 九龙坡区| 齐齐哈尔市| 阿瓦提县| 和田县| 阿瓦提县| 依兰县|