作為一個高效的網管員,腳本、編程我個人認為至少會一種,如果真不會,那至少也要會使用多種網管工具來簡化工作,提高工作效率。網管的工作很多都是機械式的,人工操作顯然是最笨的辦法。
自從接觸到SecureCRT以來,就被其強大的編程接口所吸引,當然,像SolarWinds、KiwiSyslog等網管軟件也支持此類腳本代碼。
本文主要講解Screen函數的使用。腳本語言均使用VBScript。
======================================無敵分割線==============================================
在SecureCRT里,用得最多的應該就是crt.Screen,基本上很多操作都是基于屏幕的返回字來決定下一步的操作。
====================Screen之屏幕返回判斷====================
在判斷屏幕返回字的函數里,主要用到的是兩個:
1、crt.Screen.WaitForString("KeyString",timeout)
2、crt.Screen.WaitForStrings("KeyString1","KeyString2",...,timeout)
---------------------WaitForString詳解--------------------
第一個函數是單字符串判斷,KeyString是需要查找的關鍵字,timeout是一個超時閥值,例如:
crt.Screen.WaitForString("Username:",5)
該行代碼的意思就是在5秒內沒有檢測到Username:出現,就執(zhí)行下一條語句,如果改成:crt.Screen.WaitForString("Username:")
那就是指直到Username:出現才執(zhí)行下一行代碼。
WaitForString是有返回值的,返回值是True 或者 False。
因此,可以根據返回值進行條件判斷以確定一下條代碼。例如:
If (crt.Screen.WaitForString ("current state : UP",1)<>False) Then
portStatus="PortUP"
Else
portStatus="PortDown"
End If
這段代碼用于判斷端口狀態(tài)情況并記錄下來。
---------------------WaitForStrings詳解--------------------
第二個函數用于多個字符串的判斷,timeout的作用是一樣的。例如:
crt.Screen.WaitForStrings("cisco","huawei","H3C",5)
意思就是在5秒內有檢測到相應的字符時,返回相應的索引號(索引號是從1開始的)。如果都沒有檢查到,則返回0.因此,該函數的使用可以如下:
Dim SwitchKey
SwitchKey=crt.Screen.WaitForStrings("cisco","huawei","H3C",5)
Select case SwitchKey
case 1
MsgBox "思科設備"
case 2
MsgBox "華為設備"
case 3
MsgBox "華三設備"
case else
MsgBox "未知設備"
End Select