shell腳本實現自動輸入賬號密碼連接運服務器并執行其他命令的方法

一、背景:

測試中經常需求連接到測試服務器查看日志,通常步驟是 :

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,并輸入用戶密碼,登錄成功。

zidogn
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Expect是Linux操作系統下的一個用來處理交互操作,系統默認是沒有安裝expect庫,所以執行expect會...
    twintwin閱讀 520評論 0 0
  • 近日,人民銀行向各銀行機構、支付機構及清算組織下發了《中國人民銀行關于規范支付創新業務的通知》(銀發【2017】2...
    hh與ww閱讀 369評論 0 0
  • 1、練字一小時。 2、喜馬拉雅、得到泛聽3小時。 3、跑步、做操半小時。 4、今日以照顧媽媽為主,主要的時間都奉獻...
    了茶閱讀 282評論 0 0
  • 如果說 命運將從新被撰改 我還會義無反顧的選擇走老路 現在的生活平靜如水 不好不壞 或許這就是所謂的命 曾 一度的...
    揀書悅讀閱讀 587評論 1 9
  • 櫻花開放是一個多么美麗,多么浪漫的季節。每年都期待櫻花的開放。似凡間的一抹清幽,空靈,使人徜徉其中,無法自拔。 每...
    後青春的詩閱讀 537評論 2 6