專利名稱:一種Telnet命令自動(dòng)生成及批量執(zhí)行方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Telnet客戶端系統(tǒng),具體涉及一種Telnet命令自動(dòng)生成及批 量執(zhí)行方法。
背景技術(shù):
Telnet協(xié)議是一種被廣泛使用的協(xié)議,在遠(yuǎn)程登錄unix/linux月l務(wù)器、 數(shù)據(jù)交換機(jī)、路由器等設(shè)備時(shí)發(fā)揮了巨大作用。通過(guò)Telnet客戶端,用戶可 以象操作自己的PC —樣操作遠(yuǎn)程服務(wù)器,簡(jiǎn)單實(shí)用。但是普通的Telnet客 戶端只能單條執(zhí)行用戶輸入的命令,對(duì)于批量的命令無(wú)能為力;并且命令完 全由用戶手工輸入,不能根據(jù)需要自動(dòng)定制生成。在很多情況下,用戶需要 自動(dòng)定制生成Telnet命令,并且重復(fù)、批量執(zhí)行,而普通的Telnet客戶端不 具備此項(xiàng)功能,用戶只能靠手工輸入一條條的命令,這樣一方面加大了用戶 的工作量,降低了用戶的工作效率,另一方面也容易出錯(cuò),同時(shí)用戶還必須 牢記各種命令的格式。因此,用戶迫切需要一種能顯著降低其工作量,提高 工作效率的新型Telnet客戶端系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明需要解決的技術(shù)問(wèn)題是如何提供一種Telnet命令自動(dòng)生成及批 量執(zhí)行方法,能根據(jù)用戶要求自動(dòng)完成Telnet命令的定制、批量執(zhí)行,進(jìn)一 步還可將執(zhí)行結(jié)果及出錯(cuò)信息保存在日志文件中,供用戶查看。
本發(fā)明的上述技術(shù)問(wèn)題這樣解決,提供一種Telnet命令自動(dòng)生成及批量 執(zhí)行方法,在Telnet客戶端上執(zhí)行,包括以下步驟
1.1) 利用腳本完成Telnet命令定制;
1.2) 解析腳本、逐條順序執(zhí)行其中所有Telnet命令并隨時(shí)根據(jù)任一條
Telnet命令的錯(cuò)誤執(zhí)行結(jié)果中斷執(zhí)行。
按照本發(fā)明提供的執(zhí)行方法,所述步驟l.l)具體包括 U. 1)根據(jù)腳本名稱讀取腳本模板;
l丄2)從文件或程序中自動(dòng)獲取對(duì)應(yīng)腳本參數(shù)生成定制腳本。
按照本發(fā)明提供的執(zhí)行方法,所述文件包括但不限制于是xml格式。
按照本發(fā)明提供的執(zhí)行方法,所述步驟1.2)還包括讀取每一條Telnet命 令的執(zhí)行結(jié)果并保存至指定文件中,該指定文件一般是日志文件。
按照本發(fā)明提供的執(zhí)行方法,所述讀取包括在讀取的服務(wù)器端Telnet 命令執(zhí)行結(jié)果內(nèi)查找分頁(yè)字符串并根據(jù)查到分頁(yè)字符串發(fā)送任意鍵信息獲 取下一頁(yè)內(nèi)容,該分頁(yè)字符串是一個(gè)特定字符串。
按照本發(fā)明提供的執(zhí)行方法,不同的服務(wù)器端可能有不同的字符串來(lái)代 表出錯(cuò)信息和分頁(yè)信息,因此,所述分頁(yè)字符串是該Telnet客戶端連接服務(wù) 器定義的分頁(yè)信息。
按照本發(fā)明提供的執(zhí)行方法,所述步驟1.2)包括在讀取的服務(wù)器端 Telnet命令執(zhí)行結(jié)果內(nèi)查找出錯(cuò)字符串并根據(jù)查到出錯(cuò)字符串判斷對(duì)應(yīng) Telnet命令錯(cuò)誤執(zhí)行,該出錯(cuò)字符串是另一些特定字符串,比如"Command not found"。
按照本發(fā)明提供的執(zhí)行方法,不同的服務(wù)器端可能定義不同的字符串來(lái) 代表出錯(cuò)信息和分頁(yè)信息,因此,所述出錯(cuò)字符串是該Telnet客戶端連接服 務(wù)器定義的出錯(cuò)信息。
按照本發(fā)明提供的執(zhí)行方法,該執(zhí)行方法直接凈皮用戶調(diào)用。
按照本發(fā)明提供的執(zhí)行方法,該執(zhí)行方法通過(guò)Telnet客戶端系統(tǒng)中應(yīng)用 程序接口 APH皮具體應(yīng)用軟件調(diào)用。
按照本發(fā)明提供的執(zhí)行方法,該Telnet客戶端連接的服務(wù)器是計(jì)算機(jī)、 數(shù)據(jù)交換機(jī)或路由器。
按照本發(fā)明提供的執(zhí)行方法,所述步驟1.2)還包括位于該步驟開(kāi)始時(shí)的 建立與對(duì)應(yīng)服務(wù)器的Telnet連接和位于該步驟結(jié)束時(shí)的拆除所述Telnet連
接。
按照本發(fā)明提供的執(zhí)行方法,所述步驟1.2)還包括當(dāng)所述Telnet連接建 立失敗后進(jìn)行重試、超過(guò)指定重試次數(shù)仍然失敗,直接中斷執(zhí)行。
本發(fā)明提供的一種Telnet命令自動(dòng)生成及批量執(zhí)行方法,集自動(dòng)定制生 成Telnet命令腳本、批量執(zhí)行以及結(jié)果的反饋與處理于一體,實(shí)現(xiàn)了智能化 和自動(dòng)化,與現(xiàn)有技術(shù)相比較,可以大大提高用戶的工作效率,提高命令輸 入的準(zhǔn)確率,減少用戶的工作量;此外,本發(fā)明還具備通用性優(yōu)點(diǎn),主要表 現(xiàn)在兩方面
(-)Telnet服務(wù)器的通用性。也就是說(shuō)可以用本客戶端系統(tǒng)登錄任何 Telnet服務(wù)器,不管服務(wù)器是一臺(tái)運(yùn)行UNIX/LINUX操作系統(tǒng)的PC,還是 一臺(tái)數(shù)據(jù)交換機(jī)或路由器。
仁)使用對(duì)象的通用性。使用對(duì)象可以是普通的用戶,就象操作普通 Telnet客戶端一樣操作本發(fā)明中的客戶端系統(tǒng);也可以是應(yīng)用程序,通過(guò)本 系統(tǒng)提供的API接口調(diào)用本系統(tǒng)。
下面結(jié)合附圖和具體實(shí)施例進(jìn)一 步對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
圖l是本發(fā)明中進(jìn)行腳本定制生成的流程示意圖2是本發(fā)明中執(zhí)行腳本的流程示意圖3是普通用戶直接調(diào)用本發(fā)明的流程示意圖4是應(yīng)用程序通過(guò)API調(diào)用本發(fā)明的流程示意具體實(shí)施例方式
首先,說(shuō)明本發(fā)明兩大關(guān)鍵腳本的定制生成和腳本的執(zhí)行,其中 (-)腳本的定制生成
腳本的定制生成主要包括如下幾個(gè)步驟 步驟A、讀取腳本名稱
所謂腳本就是多條Telnet命令的集合,用于完成一個(gè)操作,實(shí)現(xiàn)一個(gè)或 多個(gè)功能,類似于UNIX系統(tǒng)中的批處理命令,不過(guò)腳本的功能更加強(qiáng)大, 腳本保存于客戶端,腳本中的命令既可以是普通命令,也可以是批處理命令, 腳本既能實(shí)現(xiàn)登錄過(guò)程,也能實(shí)現(xiàn)登出過(guò)程。 一條腳本對(duì)應(yīng)一項(xiàng)具體的功能, 所以首先要讀取腳本名稱,根據(jù)名稱再讀取對(duì)應(yīng)的腳本模板內(nèi)容。
步驟B、讀取腳本模板
腳本模板是腳本的一個(gè)框架,是未定制的腳本,需要對(duì)其中的參數(shù)進(jìn)行 實(shí)例化才能生成可以執(zhí)行的腳本。腳本模板可以保存到文件或者數(shù)據(jù)庫(kù)中。 以下通過(guò)一條簡(jiǎn)單的腳本模板內(nèi)容解釋腳本模板的 一般格式
$USERNAME$
$PASSWORD$
cd $PATH$
del $FILENAME$
exit
這條腳本模板主要實(shí)現(xiàn)的是在UNIX系統(tǒng)中進(jìn)入一條目錄刪除一條文 件的搡作,"$"之間的內(nèi)容表示參數(shù)名稱,USERNAME就表示登錄用戶 名。參數(shù)名稱需要在腳本定制時(shí)進(jìn)行實(shí)例化,傳入具體的值。
步驟C、傳入腳本參數(shù)值
要定制生成一條腳本,就需要對(duì)腳本模板中的參數(shù)進(jìn)行實(shí)例化,而這個(gè) 過(guò)程是在執(zhí)行腳本之前必須完成。腳本參數(shù)的值可以事先存放于文件中(可 以采用xml格式),也可以是程序中的變量值,在需要時(shí)根據(jù)其參數(shù)名稱將 其傳給腳本模板。例如針對(duì)上面舉例的一段腳本模板,我們可以建立一個(gè) xml文件,存放腳本參數(shù)值
< xml version="1.0" >
<!— Script parameter —>
<ScriptPara>
<USERNAME>admin</USERNAME>
<PASSWORD>zhongxing</PASSWORD> <PATH>tmp</ PATH > <FILENAME〉test.dat</ FILENAME 〉 </ScriptPara〉
通過(guò)讀取xml文件,就可以獲取其中的實(shí)際參數(shù)值,比如"USERNAME" 的值為"admin",這就是實(shí)際的用戶名。
t)腳本的執(zhí)行
腳本的執(zhí)行主要包括如下幾個(gè)步驟 步驟A、腳本解析
也就是將腳本分解成單條可執(zhí)行的Telnet命令。 步驟B、腳本的執(zhí)行
首先建立與服務(wù)器端的Telnet連接,然后輸入用戶名和密碼登錄(這里 用戶名和密碼也作為腳本的一部分),登錄成功后順序執(zhí)行腳本中的所有命令。
步驟C、執(zhí)行結(jié)果的讀取和處理
客戶端在向服務(wù)器端發(fā)送一條命令后,需讀取服務(wù)器端的命令執(zhí)行結(jié) 果,并對(duì)其進(jìn)行處理。命令的執(zhí)行結(jié)果可能包含多種信息
1) 出錯(cuò)信息表明命令執(zhí)行出錯(cuò),停止腳本的繼續(xù)執(zhí)行
2) 分頁(yè)信息服務(wù)端所傳送的信息包含多頁(yè),客戶端需要向服務(wù)器端發(fā) 送任意按鍵信息,使服務(wù)器端傳送下頁(yè)信息
出錯(cuò)信息的判斷是通過(guò)查找結(jié)果信息中的特定字符串,比如"Command not found"等等,分頁(yè)信息的判斷與出錯(cuò)信息類似。但是不同的服務(wù)器端可 能有不同的字符串來(lái)代表出錯(cuò)信息和分頁(yè)信息,而本發(fā)明中的客戶端是一個(gè) 通用客戶端,所以在執(zhí)行腳本前需要向客戶端注冊(cè)對(duì)應(yīng)服務(wù)器的出錯(cuò)信息和
分頁(yè)信息。
客戶端讀取到腳本的執(zhí)行結(jié)果后,就將其保存到日志文件中,用戶可以 隨時(shí)查看。
第二步,結(jié)合具體流程詳細(xì)說(shuō)明本發(fā)明 (-)腳本定制生成的流程
如圖l所示,該流程具體包括讀取腳本參數(shù)文件中的內(nèi)容,將所有參 數(shù)保存到數(shù)組中,然后讀取腳本才莫板文件內(nèi)容,查找其中的字符串,如果發(fā) 現(xiàn)包含在兩個(gè)"$"之間的字符串(一個(gè)單詞),則判斷其為參數(shù)名稱,根 據(jù)參數(shù)名稱到參數(shù)數(shù)組中查找其對(duì)應(yīng)的真實(shí)值,用真實(shí)值替換參數(shù)名稱,也 就是對(duì)參數(shù)名稱實(shí)例化。循環(huán)查找參數(shù)模板中所有的參數(shù)名稱,直到全部被 實(shí)例化, 一條Telnet腳本語(yǔ)言也就生成了 。接下來(lái)就是腳本語(yǔ)言的執(zhí)行過(guò)程。
(二)執(zhí)行腳本的流程
如圖2所示,該流程也就是將腳本語(yǔ)句中的Telnet命令提取處理,單獨(dú) 發(fā)送到Telnet服務(wù)器端執(zhí)行的過(guò)程,具體包括首先與Telnet服務(wù)器建立一 個(gè)TCP連接;連接建好后,從腳本中讀取一條命令,采用字符形式發(fā)送到 服務(wù)器端,然后從服務(wù)器讀取命令的執(zhí)行結(jié)果信息。因?yàn)榻Y(jié)果信息中可能包 含一些控制信息,所以需要對(duì)結(jié)果進(jìn)行解析,提取其中的控制信息,然后將 可讀信息返回給客戶端系統(tǒng);如果腳本中包含錯(cuò)誤命令格式,那么服務(wù)器端 返回的結(jié)果信息中就會(huì)包含出錯(cuò)信息,所以還需要檢查結(jié)果信息中是否包含 出錯(cuò)信息,如果包含,則中斷腳本的執(zhí)行。另外,在結(jié)果信息中,可能會(huì)包 含分頁(yè)信息,也就是在一頁(yè)無(wú)法顯示,需要分多頁(yè)顯示的信息;客戶端系統(tǒng) 如果檢查到此類信息,需向Telnet服務(wù)器發(fā)送任意字符,以獲取下頁(yè)信息。
第三步,分兩種具體情況說(shuō)明本發(fā)明應(yīng)用
(-)用戶直接調(diào)用
如圖3所示,用戶調(diào)用本發(fā)明,主要包括如下步驟
步驟l、新建腳本模板文件和腳本參數(shù)文件,配置腳本模板內(nèi)容,輸入 腳本參數(shù);
步驟2、輸入需要執(zhí)行的腳本名稱,客戶端系統(tǒng)會(huì)根據(jù)腳本名稱查找到 對(duì)應(yīng)的腳本模板信息;
步驟3、執(zhí)行生成腳本功能;
步驟4、執(zhí)行腳本;
步驟5、讀取結(jié)果信息。 (二)應(yīng)用軟件調(diào)用
如圖4所示,應(yīng)用軟件在調(diào)用本發(fā)明時(shí),其步驟與用戶調(diào)用時(shí)基本一致, 只不過(guò)在步驟2、 3、 4、 5中,是通過(guò)客戶端系統(tǒng)的API來(lái)實(shí)現(xiàn)調(diào)用的。
最后,應(yīng)當(dāng)理解的是,對(duì)本領(lǐng)域普通技術(shù)人員來(lái)說(shuō),可以根據(jù)本發(fā)明的 技術(shù)構(gòu)思進(jìn)行等同改變或替換,而所有這種無(wú)需額外創(chuàng)造性勞動(dòng)的改變或替 換方案都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1、一種Telnet命令自動(dòng)生成及批量執(zhí)行方法,其特征在于,在Telnet客戶端上執(zhí)行,包括以下步驟1.1)利用腳本完成Telnet命令定制;1.2)解析腳本、逐條順序執(zhí)行其中所有Telnet命令并隨時(shí)根據(jù)任一條Telnet命令的錯(cuò)誤執(zhí)行結(jié)果中斷執(zhí)行。
2、 根據(jù)權(quán)利要求1所述執(zhí)行方法,其特征在于,所述步驟l.l)具體 包括l丄l)根據(jù)腳本名稱讀取腳本模板;l丄2)從文件或程序中自動(dòng)獲取對(duì)應(yīng)腳本參數(shù)生成定制腳本。
3、 根據(jù)權(quán)利要求2所述執(zhí)行方法,其特征在于,所述文件是xml格式。
4、 根據(jù)權(quán)利要求1所述執(zhí)行方法,其特征在于,所述步驟1.2)還包 括讀取每一條Telnet命令的執(zhí)行結(jié)果并保存至指定文件中。
5、 根據(jù)權(quán)利要求4所述執(zhí)行方法,其特征在于,所述讀取包括在讀 取的服務(wù)器端Telnet命令執(zhí)行結(jié)果內(nèi)查找分頁(yè)字符串并根據(jù)查到分頁(yè)字符 串發(fā)送任意鍵信息獲取下一頁(yè)內(nèi)容。
6、 根據(jù)權(quán)利要求1所述執(zhí)行方法,其特征在于,所述步驟1.2)包括 在讀取的服務(wù)器端Telnet命令執(zhí)行結(jié)果內(nèi)查找出錯(cuò)字符串并根據(jù)查到出錯(cuò) 字符串判斷對(duì)應(yīng)Telnet命令錯(cuò)誤執(zhí)行。
7、 根據(jù)權(quán)利要求5或6所述執(zhí)行方法,其特征在于,所述分頁(yè)字符 串或出錯(cuò)字符串是該Telnet客戶端連接服務(wù)器的對(duì)應(yīng)信息。
8、 根據(jù)權(quán)利要求1所述執(zhí)行方法,其特征在于,該執(zhí)行方法被用戶 直接調(diào)用或通過(guò)Telnet客戶端系統(tǒng)中應(yīng)用程序接口被應(yīng)用軟件調(diào)用。
9、 根據(jù)權(quán)利要求1所述執(zhí)行方法,其特征在于,該Telnet客戶端連 接的服務(wù)器是計(jì)算機(jī)、數(shù)據(jù)交換機(jī)或路由器。
10、 根據(jù)權(quán)利要求1所述執(zhí)行方法,其特征在于,所述步驟L2)還包 括位于該步驟開(kāi)始時(shí)的建立與對(duì)應(yīng)服務(wù)器的Telnet連接和位于該步驟結(jié)束 時(shí)的拆除所述Telnet連4妻。
全文摘要
本發(fā)明涉及一種Telnet命令自動(dòng)生成及批量執(zhí)行方法,在Telnet客戶端上執(zhí)行,包括1.1)利用腳本完成Telnet命令定制;1.2)解析腳本、逐條順序執(zhí)行其中所有Telnet命令并隨時(shí)根據(jù)任一條Telnet命令的錯(cuò)誤執(zhí)行結(jié)果中斷執(zhí)行。這種方法集腳本自動(dòng)定制生成、批量執(zhí)行以及結(jié)果的反饋與處理于一體,實(shí)現(xiàn)了智能化和自動(dòng)化,與現(xiàn)有技術(shù)相比較,可大大提高用戶的工作效率,提高命令輸入的準(zhǔn)確率,減少用戶的工作量,同時(shí)具有很強(qiáng)的通用性。
文檔編號(hào)H04L29/06GK101170568SQ200710196540
公開(kāi)日2008年4月30日 申請(qǐng)日期2007年11月29日 優(yōu)先權(quán)日2007年11月29日
發(fā)明者吳榮輝, 潘大乾 申請(qǐng)人:中興通訊股份有限公司