日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

SecureCRT對于每一位網工來說并不陌生,相信每個網工的電腦上肯定都裝著這款軟件。以前剛開始玩的時候覺得就是普通的仿真終端程序而已,其實它軟件還有更加強大的腳本功能,SecureCRT可以支持VBScript、JAVAscript、Python/ target=_blank class=infotextkey>Python腳本語言等等。通過腳本我可以來拓展更多豐富的功能,比如可以通過腳本實現自動化的命令執行。

剛巧社區里面的小伙伴最近在做一個大項目,有上百臺交換機配置需要收集。剛好最近有研究,于是就搞起來了。 今天我們來說說如何使用SecureCRT制作一個自動化批量巡檢交換機的腳本,這里我們用VBScript腳本語言來制作,官方對這個支持的也挺好的,還有幫助文檔,而且網上關于用VBScript編寫CRT腳本的教程也很多,遇到問題還可以百度下。通過腳本自動化的執行提升工作效率,在也不用自己來搬磚了。

制作腳本;

這里我們以cisco交換機為例子,講解下沒段代碼的含義,然后您可以根據附件提供的代碼根據下面的教程自己進行修改腳本,適應自己的環境。腳本適用于可以通過CRT登陸設備,比如華三、華為交換機或在linux操作系統。

1、首先我們需要讓腳本來自動幫我們登錄交換機并進入到enable模式,請看下面的腳本:

crt.Screen.WaitForString ("Username:") ‘等待字符串Username出現,區分大小寫

crt.screen.Send("cisco")&chr(13) ‘發送字符串cisco并回車

crt.Screen.WaitForString "Password: "

crt.Screen.Send "cisco" & chr(13)

crt.Screen.WaitForString ">"

crt.Screen.Send "en" & chr(13)

crt.Screen.WaitForString "Password: "

crt.Screen.Send "cisco" & chr(13)

注:設備的賬號密碼可以在上面的腳本中修改發送的字符串即可

2、通常我們都會在crt界面點擊記錄會話日志,這里我們就不需要手動,用腳本就解決了。

crt.session.LogFileName="192.168.1.1.log" ‘設置記錄的日志文件名稱

crt.session.Log(true) ‘開始記錄日志

3、通常需要我們來手敲的命令,用下面的腳本就可以讓crt自己敲起來了。

crt.Screen.Send "show clock" & chr(13)

crt.Screen.WaitForString "#"

crt.Screen.Send "show running-config" & chr(13)

nextmore ‘調用自定義函數

crt.Screen.Send "show version" & chr(13)

nextmore ‘調用自定義函數

那么如果想加入其它命令怎么辦呢?直接在這塊腳本上附加上下面的代碼即可。

crt.Screen.Send "show vlan" & chr(13)

crt.Screen.WaitForString "#"

如果輸出內容較多會出現more,只要稍作修改,調用我們自定義的函數即可。

crt.Screen.Send "show vlan" & chr(13)

nextmore

4、我們知道當crt界面不能輸出所有信息的時候,就會出現“—more—”的字符串,這個時候需要手動執行空格或者回車查看更多的內容,但是因為設備的不通需要執行的空格數量又不確定,于是我們這里就編寫一個循環語句,當遇到More字符串出現的時候就自動發送空格。由于很多命令都會出現類似的情況,于是我們可以將整循環編寫為一個函數,用于調用即可。以簡化我們的代碼。

編寫函數:

Function nextmore

do while ( crt.screen.waitforstring("--More--",3)=true)

crt.screen.Send(chr(32))

loop

End Function

腳本含義:當3秒內等等到字符串"--More--"的出現則執行下面的語句發送一個chr(32)(空格鍵的ASCII值),while判斷條件成立執行,不成立則退出循環。

5、關閉日志記錄,當然這個操作我們也可以自動化。

crt.screen.waitforstring("#")

crt.session.Log(false)

注:當等待到“#”出現,也就是命令都執行完畢后,停止日志記錄。

6、登錄下一臺交換機執行上面操作,一臺設備的所有操作都做完,下面我們要讓這些腳本自動一臺一臺的去執行。這里我們就需要再次用到循環語句。

for i=1 to 254 ‘循環從1到254依次循環,i的值會自動遞增

dim ip ‘創建變量ip

ip="192.168.1."&i ‘定義變量,作為IP地址,ip隨著循環變化而變

crt.screen.Send("te.NET "&ip)&chr(13) ‘telnet登錄交換機

'判斷是否telnet成功,如果31秒內出現Username登錄則執行下面語句

if(crt.Screen.WaitForString ("Username:",31)=true) then

'下面語句為條件成立后執行的語句內容

crt.session.LogFileName=ip&".log" ‘以IP地址作為日志的文件名

crt.session.Log(true)

。。。。

end if ‘if語句結束

next ‘和for循環對應,執行下一次循環

腳本知識

crt.Screen.Send 發送一個字符串

crt.Screen.WaitForString 等待字符串出現,如果匹配到字符串后執行下面的操作

chr(13) 這是回車鍵的ASCII碼值

chr(32) 這是空格鍵的ASCII碼值

& VBScript里面的連接字符串連接符

' 注釋行符號,在文本前打上英文的單引號后,表示此行語句不被執行

Do...Loop 語句

運行循環,當條件為 true 或者直到條件為 true 時。

Do while(判斷條件)

執行語句

Loop

For...Next 語句

運行一段語句指定的次數

For i=1 to 254

執行語句

Next

IF語句

假如你希望在條件為 true 時執行一系列的代碼,可以使用這個語句。

If (判斷條件) then

執行語句

End if

如果還有不明白的地方可以跟帖回復,或者百度下去學習下VBScript腳本語言,腳本語言比較簡單,短時間可以學會基礎,有基礎了搞個crt腳本是沒問題的。

分享到:
標簽:SecureCRT
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定