一、背景:
測試中經常需求連接到測試服務器查看日志,通常步驟是 :
1.???????? 打開xshell
2.???????? 選擇對應服務器
3.???????? 登錄
4.???????? 切換到特定目錄
5.???????? 執行catalina.out
二、想法:
因為每日測試都需要,并且是簡單的操作,希望可以用腳本實現以上功能,一鍵執行。
Expect是一種TCL擴展性的語言,主要用于完成系統交互方面的功能,比如SSH、FTP等,這些程序都需要手工與它們進行互動,而使用Expect就可以模擬人手工互動的過程,使用一種自動的方式控制。
expect是一個免費的編程工具語言,用來實現自動和交互式任務進行通信,而無需人的干預。expect是不斷發展的,隨著時間的流逝,其功能越來越強大,已經成為系統管理員的的一個強大助手。Expect中,有三個重要的主命令,分別是spawn、expect、exp_send,這三個命令幾乎存在于所有Expect腳本中,除了這些之外,還有很多Expect所特有的參數、變量,它們也作用與Expect的方方面面。
三、實施:
expect需要Tcl編程語言的支持,要在系統上運行expect必須首先安裝Tcl
1、? ? ? ?環境配置
參考:https://blog.csdn.net/jw_xuezhixia/article/details/54144116
2、? ? ? ? 腳本準備
說明:
spawn:spawn命令是Expect的初始命令,它用于啟動一個進程,之后所有expect操作都在這個進程中進行,如果沒有spawn語句,整個expect就無法再進行下去。
set timeout:后面所有的expect命令的等待響應的超時時間為對應參數。
expect:expect命令用于等候一個相匹配的輸出,一旦匹配就執行后面的動作。
send:一般是expect中的動作命令,向進程發送輸入內容。
interact:運行表示將控制權交給用戶,與spawn生成的進程進行交互。
四、執行結果:
執行shell腳本, 自動執行ssh連接服務器ip,并輸入用戶密碼,登錄成功。