一溢谤、背景:
測試中經(jīng)常需求連接到測試服務(wù)器查看日志欲逃,通常步驟是 :
1.???????? 打開xshell
2.???????? 選擇對應(yīng)服務(wù)器
3.???????? 登錄
4.???????? 切換到特定目錄
5.???????? 執(zhí)行catalina.out
二化借、想法:
因為每日測試都需要领曼,并且是簡單的操作缆巧,希望可以用腳本實現(xiàn)以上功能,一鍵執(zhí)行莉炉。
Expect是一種TCL擴展性的語言钓账,主要用于完成系統(tǒng)交互方面的功能,比如SSH絮宁、FTP等梆暮,這些程序都需要手工與它們進行互動,而使用Expect就可以模擬人手工互動的過程绍昂,使用一種自動的方式控制啦粹。
expect是一個免費的編程工具語言,用來實現(xiàn)自動和交互式任務(wù)進行通信窘游,而無需人的干預(yù)卖陵。expect是不斷發(fā)展的,隨著時間的流逝张峰,其功能越來越強大,已經(jīng)成為系統(tǒng)管理員的的一個強大助手棒旗。Expect中喘批,有三個重要的主命令撩荣,分別是spawn、expect饶深、exp_send餐曹,這三個命令幾乎存在于所有Expect腳本中,除了這些之外敌厘,還有很多Expect所特有的參數(shù)台猴、變量,它們也作用與Expect的方方面面俱两。
三饱狂、實施:
expect需要Tcl編程語言的支持,要在系統(tǒng)上運行expect必須首先安裝Tcl
1宪彩、? ? ? ?環(huán)境配置
參考:https://blog.csdn.net/jw_xuezhixia/article/details/54144116
2休讳、? ? ? ? 腳本準(zhǔn)備
說明:
spawn:spawn命令是Expect的初始命令,它用于啟動一個進程尿孔,之后所有expect操作都在這個進程中進行俊柔,如果沒有spawn語句,整個expect就無法再進行下去活合。
set timeout:后面所有的expect命令的等待響應(yīng)的超時時間為對應(yīng)參數(shù)雏婶。
expect:expect命令用于等候一個相匹配的輸出,一旦匹配就執(zhí)行后面的動作白指。
send:一般是expect中的動作命令留晚,向進程發(fā)送輸入內(nèi)容。
interact:運行表示將控制權(quán)交給用戶侵续,與spawn生成的進程進行交互倔丈。
四、執(zhí)行結(jié)果:
執(zhí)行shell腳本状蜗, 自動執(zhí)行ssh連接服務(wù)器ip需五,并輸入用戶密碼,登錄成功轧坎。