系統 網路運維好幫手 expect

2021-09-21 04:14:16 字數 1469 閱讀 9643

接上篇「交換機定時自動備份配置檔案的方法」,乙個網路裡因為各種原因,可能會有多種品牌、不同服役年限的交換機,並不是所有都能支援類似kron或job命令,那這個時候只有用到expect了,debian下安裝非常簡單,自帶源裡就有,直接 aptitude install expect即可,但有2個基本前提:libc6 (>= 2.3), tcl8.5 (>= 8.5.0),即便netinstall的精簡debian,也基本包含了這2個元件,安裝過程中不出錯,就可以忽略。

安裝完成後就可以直接執行設定的指令碼了,指令碼的許可權至少得包含執行,我暫時把指令碼設定為751的許可權,因為要設定讓系統cron每天1點或2點定時執行它。

如何寫指令碼,就像你如何與交換機進行互動操作一樣:登陸裝置->提示使用者名稱或密碼->輸入使用者名稱或密碼

->特權模式

->

提示使用者名稱或密碼

->

輸入使用者名稱或密碼

->拷貝配置到伺服器端

->提示完成

->退出登陸。

範例:#!/usr/bin/expect

spawn telnetswitch ip

expect "password:"

send "telnet password\r"

expect "switch name>"

send "en\r"

expect "password:"

send "enable password\r"

expect "switch name#"

send "copy startup-config tftp:\r"

expect "address of remote host"

send "tftp server ip\r"

expect "destination filename"

send "config file name\r"

expect "switch name#"

send "exit\r"

可以看的出,基本就是乙個互動的過程:系統反饋出現什麼->傳送什麼命令。所以這個軟體的名字也很貼切「expect"。如果有多台裝置,就再增加幾段指令碼在檔案內。

最終成型:

題外話:expect在這裡的指令碼應用只是它一小部分的功能,在實現了所需要的後,我就淺嘗輒止了。對於其變數、一致性檢查、判斷等等,還有待我繼續學習。

博主點評:

expect工具讓我想到了pexpect工具,這兩者相似,後者是expect的乙個python實現。

參考博文:pexpect自動互動系統

網路運維與管理系統

模組化 系統模型可以很好的理解網路環境,即使很複雜的環境,也可以進行詳細的分析。系統模型的核心用來描述裝置的基礎資訊,系統模型是基於物件的,可以通過繼承物件對模型進行擴充套件。自動發現 使用自動發現來應對複雜環境。在自動發現過程中,系統會訪問現有環境下所有的監控裝置,從而獲取裝置資訊。標準化 由於從...

電商辦公系統 電商快速發展的好幫手

電商行業興起是必然 網際網路已經遍及到每家每戶,效率化的辦公已經成為了一種需求,電商行業的出現實現了通過網際網路減少不必要的中間層級提高了買賣效率的要求,通過it系統也減少了人力成本,提高了工作效率。比如說馬雲的 出現,各行各業低要求開店,蜂擁而至的商品導致供等於求,滿意的 購買滿意的商品,貨比三家...

小型自動化運維 expect指令碼

小型自動化運維 expect指令碼 expect可以讓我們實現自動登入遠端機器,並且可以實現自動遠端執行命令。知道使用者名稱和密碼或者是使用金鑰驗證都可以使用,下面介紹expect 指令碼實現登陸和遠端命令 yum install y expect openssh clients 依賴 ssh 通訊...