一種基于Curses技術(shù)實(shí)現(xiàn)跨用戶跨主機(jī)管理的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種基于Curses技術(shù)實(shí)現(xiàn)跨用戶跨主機(jī)管理的方法及系統(tǒng),所述方法包括以下步驟:步驟1,配置多臺(tái)主機(jī)及用于管理所有主機(jī)的運(yùn)維平臺(tái);步驟2,在各臺(tái)主機(jī)上配置Curses界面管理工具和expect腳本;步驟3,運(yùn)維平臺(tái)遠(yuǎn)程登錄各主機(jī),并通過調(diào)用expect腳本進(jìn)行主機(jī)切換;步驟4,運(yùn)維平臺(tái)調(diào)用切換到的主機(jī)的Curses界面管理工具監(jiān)控該主機(jī)。本發(fā)明能夠方便開發(fā)、測試、維護(hù)人員在多臺(tái)主機(jī)操作時(shí),進(jìn)行用戶切換,且基于Curses菜單式界面系統(tǒng)管理,為系統(tǒng)的運(yùn)營維護(hù)提供了圖形用戶界面環(huán)境,使得操作更加直觀,方便維護(hù)人員更加有效快捷地進(jìn)行運(yùn)營維護(hù)管理。
【專利說明】-種基于Curses技術(shù)實(shí)現(xiàn)跨用戶跨主機(jī)管理的方法及系 統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉系統(tǒng)圖形界面管理【技術(shù)領(lǐng)域】,特別是涉及一種基于Curses技術(shù)實(shí)現(xiàn)跨 用戶跨主機(jī)管理的方法及系統(tǒng)。
【背景技術(shù)】
[0002] 到目前為止,基本上所有的linux、unix廠家都提供了圖形用戶界面環(huán)境,linux、 unix中可以使用Qt、GTK+等進(jìn)行X Window開發(fā)。但是在實(shí)際工作應(yīng)用中,使用的最多的 還是UNIX的字符終端環(huán)境,一方面UNIX的字符終端環(huán)境下的資源消耗比⑶I環(huán)境少得多, 另一方面則是由于curses技術(shù)的出現(xiàn)。curses技術(shù)是利用curses圖形管理類庫,為用戶 人機(jī)交互提供更方便快捷的工具,既減少了資源消耗,又提供了圖像管理界面。
[0003] 現(xiàn)有業(yè)務(wù)路由器系統(tǒng)(SR)、增值業(yè)務(wù)訂購關(guān)系管理系統(tǒng)(VS0P)等,都處于各應(yīng)用 主機(jī)登錄各主機(jī),顯得比較繁瑣,又顯得管理比較混亂,安全性也得不到保證。因此,本發(fā)明 提出一種基于Curses技術(shù)實(shí)現(xiàn)跨用戶跨主機(jī)圖形界面管理方法及系統(tǒng),利用curses技術(shù) 開發(fā)的桌面化操作界面,更容易地進(jìn)行人機(jī)交互。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明所要解決的技術(shù)問題是提供一種基于Curses技術(shù)實(shí)現(xiàn)跨用戶跨主機(jī)管理 的方法及系統(tǒng),用于解決各種軟件系統(tǒng)的跨用戶跨主機(jī)圖形界面管理問題。
[0005] 本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種基于Curses技術(shù)實(shí)現(xiàn)跨用戶跨 主機(jī)管理的方法,包括以下步驟:
[0006] 步驟1,配置多臺(tái)主機(jī)及用于管理所有主機(jī)的運(yùn)維平臺(tái);
[0007] 步驟2,在各臺(tái)主機(jī)上配置Curses界面管理工具和expect腳本;
[0008] 步驟3,運(yùn)維平臺(tái)遠(yuǎn)程登錄各主機(jī),并通過調(diào)用expect腳本進(jìn)行主機(jī)切換;
[0009] 步驟4,運(yùn)維平臺(tái)調(diào)用切換到的主機(jī)的Curses界面管理工具監(jiān)控該主機(jī)。
[0010] 在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
[0011] 進(jìn)一步,所述步驟2中,將expect腳本嵌套在Curses界面管理工具中。
[0012] 進(jìn)一步,所述步驟2還包括:基于Curses界面管理工具開發(fā)srmonitor工具,用于 對(duì)各主機(jī)進(jìn)行日常運(yùn)維管理及實(shí)現(xiàn)人機(jī)交互操作。
[0013] 進(jìn)一步,所述步驟3中,運(yùn)維平臺(tái)通過事先編制的遠(yuǎn)程登錄腳本登錄到各主機(jī)。
[0014] 進(jìn)一步,所述各主機(jī)為應(yīng)用在業(yè)務(wù)路由器系統(tǒng)和/或增值業(yè)務(wù)訂購關(guān)系管理系統(tǒng) 中的主機(jī)。
[0015] 本發(fā)明的技術(shù)方案還包括一種基于Curses技術(shù)實(shí)現(xiàn)跨用戶跨主機(jī)管理的系統(tǒng), 包括多臺(tái)主機(jī)和用于管理所有主機(jī)的運(yùn)維平臺(tái),且各臺(tái)主機(jī)上配置Curses界面管理工具 和expect腳本,所述運(yùn)維平臺(tái)用于遠(yuǎn)程登錄各主機(jī),并通過調(diào)用expect腳本進(jìn)行主機(jī)切 換;所述運(yùn)維平臺(tái)還用于調(diào)用切換到的主機(jī)的Curses界面管理工具監(jiān)控該主機(jī)。
[0016] 進(jìn)一步,所述expect腳本嵌套在所述Curses界面管理工具中。
[0017] 進(jìn)一步,所述Curses界面管理工具中帶有srmonitor工具,用于對(duì)各主機(jī)進(jìn)行日 常運(yùn)維管理及實(shí)現(xiàn)人機(jī)交互操作。
[0018] 進(jìn)一步,所述運(yùn)維平臺(tái)帶有事先編制的遠(yuǎn)程登錄腳本,用于通過該遠(yuǎn)程登錄腳本 登錄到各主機(jī)。
[0019] 進(jìn)一步,所述各主機(jī)為應(yīng)用在業(yè)務(wù)路由器系統(tǒng)和/或增值業(yè)務(wù)訂購關(guān)系管理系統(tǒng) 中的主機(jī)。
[0020] 本發(fā)明的有益效果是:本發(fā)明能夠方便開發(fā)、測試、維護(hù)人員在多臺(tái)主機(jī)操作時(shí), 進(jìn)行用戶切換,且基于Curses菜單式界面系統(tǒng)管理,為系統(tǒng)的運(yùn)營維護(hù)提供了圖形用戶界 面環(huán)境,使得操作更加直觀,方便維護(hù)人員更加有效快捷地進(jìn)行運(yùn)營維護(hù)管理。綜合來說, 本發(fā)明實(shí)現(xiàn)了在同一臺(tái)主機(jī)上跨用戶跨主機(jī)維護(hù)管理軟件系統(tǒng),實(shí)現(xiàn)了產(chǎn)品系統(tǒng)的圖形界 面一點(diǎn)登錄、一點(diǎn)管理、多點(diǎn)正常運(yùn)行。
【專利附圖】
【附圖說明】
[0021] 圖1為本發(fā)明所述基于Curses技術(shù)實(shí)現(xiàn)跨用戶跨主機(jī)管理的方法的流程示意圖。
【具體實(shí)施方式】
[0022] 以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并 非用于限定本發(fā)明的范圍。
[0023] 如圖1所示,本實(shí)施例給出了一種基于Curses技術(shù)實(shí)現(xiàn)跨用戶跨主機(jī)管理的方 法,包括以下步驟:
[0024] 步驟1,配置多臺(tái)主機(jī)及用于管理所有主機(jī)的運(yùn)維平臺(tái);
[0025] 步驟2,在各臺(tái)主機(jī)上配置Curses界面管理工具和expect腳本;基于Curses界 面管理工具開發(fā)srmonitor工具,用于對(duì)各主機(jī)進(jìn)行日常運(yùn)維管理及實(shí)現(xiàn)人機(jī)交互操作;
[0026] 步驟3,運(yùn)維平臺(tái)遠(yuǎn)程登錄各主機(jī),并通過調(diào)用expect腳本進(jìn)行主機(jī)切換;
[0027] 步驟4,運(yùn)維平臺(tái)調(diào)用切換到的主機(jī)的Curses界面管理工具監(jiān)控該主機(jī)。
[0028] 其中,所述步驟2中,將expect腳本嵌套在Curses界面管理工具中;所述步驟3 中,運(yùn)維平臺(tái)通過事先編制的遠(yuǎn)程登錄腳本登錄到各主機(jī)。
[0029] 對(duì)應(yīng)地,本實(shí)施例還給出了一種基于Curses技術(shù)實(shí)現(xiàn)跨用戶跨主機(jī)管理的系統(tǒng), 包括多臺(tái)主機(jī)和用于管理所有主機(jī)的運(yùn)維平臺(tái),且各臺(tái)主機(jī)上配置Curses界面管理工具 和expect腳本,所述運(yùn)維平臺(tái)用于遠(yuǎn)程登錄各主機(jī),并通過調(diào)用expect腳本進(jìn)行主機(jī)切 換;所述運(yùn)維平臺(tái)還用于調(diào)用切換到的主機(jī)的Curses界面管理工具監(jiān)控該主機(jī)。該系統(tǒng)與 上述基于Curses技術(shù)實(shí)現(xiàn)跨用戶跨主機(jī)管理的方法的工作原理和具體實(shí)施細(xì)節(jié)相同,這 里不再多述。
[0030] 具體地,所述各主機(jī)為應(yīng)用在業(yè)務(wù)路由器系統(tǒng)和/或增值業(yè)務(wù)訂購關(guān)系管理系統(tǒng) 中的主機(jī)。以業(yè)務(wù)路由器系統(tǒng)為例,在電信業(yè)務(wù)路由器平臺(tái)實(shí)施中,業(yè)務(wù)路由器是實(shí)行雙機(jī) 部署的,為了方便維護(hù),運(yùn)維人員開發(fā)了自己的運(yùn)維平臺(tái),運(yùn)維平臺(tái)可以通過expect遠(yuǎn)程 登錄腳本(方便不讓運(yùn)維人員知曉運(yùn)營系統(tǒng)的用戶、口令)直接跳轉(zhuǎn)到業(yè)務(wù)路由器,進(jìn)而調(diào) 用業(yè)務(wù)路由器平臺(tái)的curses界面化管理工具srmonitor,對(duì)業(yè)務(wù)路由器平臺(tái)進(jìn)行日常運(yùn)維 管理、監(jiān)控,這樣就方便了運(yùn)維操作,實(shí)現(xiàn)了一點(diǎn)登錄,多點(diǎn)維護(hù)。降低了維護(hù)成本。本實(shí)施 例的核心在于對(duì)Curses界面管理工具的應(yīng)用,下面給出本實(shí)施例在具體實(shí)施過程涉及的 相關(guān)腳本及程序。
[0031] ( 一)遠(yuǎn)程登錄的腳本:telnet_memdb. sh
[0032] # ! /usr/bin/expect
[0033] spawn telnet IP
[0034] expect"login:〃
[0035] send"user\n〃
[0036] expect"Password:〃
[0037] send"passwd\n"
[0038] Interact
[0039] (二)切換腳本調(diào)用方式:expect-f腳本名稱
[0040] 為了方便各主機(jī)及各用戶進(jìn)行切換,每臺(tái)主機(jī)上都需要有跨用戶跨主機(jī)切換腳 本。
[0041] (三)Curses界面工具方案
[0042] Curses開發(fā)的程序中嵌套跨用戶跨主機(jī)管理腳本,即可實(shí)現(xiàn)curses界面下的用 戶跨主機(jī)管理
[0043] 1、利用curses技術(shù)開發(fā)srmonitor(SR界面化監(jiān)控、運(yùn)維工具),能夠整合SR命令 集,及進(jìn)行人機(jī)交互操作,主要包括以下幾步。
[0044] 1)初始化屏幕
[0045] init_curses ();
[0046] 2)繪制首界面
[0047] 通過 draw_top_win、draw_left_win、draw_right_win、draw_bottom_win 函數(shù)來 繪制首頁面。
[0048] 3)執(zhí)行不同的選項(xiàng)
[0049] 通過上、下、左、右鍵來進(jìn)而查看不同的選項(xiàng),通過在底部輸入命令,執(zhí)行回車,進(jìn) 而來執(zhí)行相對(duì)應(yīng)的命令。從而使的命令執(zhí)行界面化。
[0050] 4)執(zhí)行界面返回首頁面
[0051] 在執(zhí)行界面輸入r命令來返回主界面。
[0052] 各頁面之間的切換主要靠擦除和刷新函數(shù)來進(jìn)行。curses庫包含的大量的功能函 數(shù),使的程序模塊化增強(qiáng),便于菜單和表單的修改,從而實(shí)現(xiàn)了高效的網(wǎng)絡(luò)管理。
[0053] 本實(shí)施例中需要用于的curses庫函數(shù)包括以下幾種。
[0054] 1)初始化和重置函數(shù)
[0055] 所有curses程序必須以initscr函數(shù)開始,以endwin函數(shù)結(jié)束。
[0056] WINDOW*initscr (void) ;//在一個(gè)程序中只調(diào)用一次,返回一個(gè)指向stdscr結(jié)構(gòu) 的指針,失敗輸出一條診斷信息并使程序結(jié)束。
[0057] int endwin (void) ;//成功返回 0K,失敗返回 ERR。
[0058] 2)輸出到屏幕
[0059] 用于刷新屏幕的基本函數(shù),字符類型chtype是比標(biāo)準(zhǔn)的char類型包含更多的二 進(jìn)制位。實(shí)際上是unsigned long類型的一個(gè)typedef類型定義。
[0060] int addch (const chtype char_to_add);
[0061] int addchstr (chtype氺const string-to-add);
[0062] int printw(char*format,…);
[0063] int refresh (void);
[0064] int box(WIND0W*win-ptr,chtype vertical_char, chtype horizontal_char);
[0065] int insch (chtype char-to-insert);
[0066] int insertln (void);
[0067] int delch (void);
[0068] int deleteln (void);
[0069] int beep (void);
[0070] int flash (void);
[0071] 3)從屏幕讀取
[0072] chtype inch (void) ;//返回光標(biāo)當(dāng)前位置的字符及其屬性。
[0073] int instr (char木string);
[0074] int innstr (char木string,int number_of-characters);
[0075] 4)清除屏幕
[0076] int erase (void) ;//在屏幕位置寫上空白字符
[0077] int clear (void);
[0078] int clrt〇b〇t(V〇id) ;//清除當(dāng)前光標(biāo)所在行下面的所有行,包括當(dāng)前光標(biāo)所在 行的光標(biāo)位置右邊直到行尾的內(nèi)容
[0079] int clrtoeol (void) ;//清除當(dāng)前光標(biāo)所在行的光標(biāo)位置右邊直到行尾的內(nèi)容。
[0080] 5)移動(dòng)光標(biāo)
[0081] int move (int new_y, int new_x);
[0082] int leaveok(WIND0W*window_ptr,bool leave_flag) ;//設(shè)置一個(gè)標(biāo)志,用于控 制在屏幕刷新后curses將物理光標(biāo)放置的位置。
[0083] 6)字符屬性
[0084] 預(yù)定義的屬性有:A_BLINK A_B0LD A_DM A_REVERSE A_STAND0UT A_UN DERLINE
[0085] int attron(chtype attribute);
[0086] int attroff (chtype attribute);
[0087] int attrset (chtype attribute);
[0088] int standout (void);
[0089] int standend (void);
[0090] 7)鍵盤的工作模式
[0091] int echo (void);
[0092] int noecho (void);
[0093] int cbreak (void);
[0094] int nocbreak (void);
[0095] int raw (void);
[0096] int noraw (void);
[0097] 8)鍵盤輸入
[0098] int getch (void);
[0099] int getstr (char木string)
[0100] int getnstr (char木string,int number_of-characters);
[0101] int scanw(char*format,…);
[0102] 9)窗口函數(shù)
[0103] WIND0W*newwin(int num-of-lines,int num-of-cols,int start_y, int start- x);
[0104] int delwin(WIND0W*window-to-delete);
[0105] 10)通用窗口函數(shù)
[0106] int addch (const chtype char);
[0107] int waddch(WIND0W*window-pointer,const chtype char);
[0108] int mvaddch(int y, int x, const chtype char);
[0109] int mvwaddch(WIND0W*window-pointer,int y,int x,const chtype char);
[0110] int printw(char*format,…);
[0111] int wprintw(WIND0W*window-pointer,char*format,…);
[0112] int mvprintw(int y, int x, char^format,...);
[0113] int mvwprintw(WIND0W*window-pointer,int y, int x,char*format,…);
[0114] 11)窗口移動(dòng)和更新屏幕
[0115] int mvwin (WIND0W*window-to-move,int new-y,int new-x);
[0116] int wrefresh(WIND0W*window-ptr);
[0117] int wclear(WIND0W*window-ptr);
[0118] int werase (WIND0W*window-ptr);
[0119] int touchwin(WIND0W*window-ptr);
[0120] int scrollok(WIND0W*window-ptr,bool scroll-flag);
[0121] int scroll(WIND0W*window-ptr);
[0122] 12)窗口優(yōu)化屏幕刷新
[0123] int wnoutrefresh(WINDOW*window-ptr);
[0124] int doupdate (void);
[0125] 13)子窗口
[0126] WIND0W*subwin(WIND0W*parent, int num-of-lines, int num-of-cols, int start-y, int start-x);
[0127] int delwin(WIND0W*window-to-delete);
[0128] 14) keypad 模式
[0129] int keypad(WIND0W*window-ptr,bool keypad-on);
[0130] 15)彩色顯示
[0131] bool has-colors (void);
[0132] int start-color (void);
[0133] int init-pair(short pair-number,short foreground,short background);
[0134] int COLOR-PAIR (int pair-number);
[0135] int pair_content(short pair_number,short*foreground,short*backgroun d);
[0136] int init_color(short color-number,short red,short green,short blue);
[0137] 16) pad
[0138] WIND0W*newpad(int number-of-lines,int number-of-columns);
[0139] int prefresh(WINDOW氺pad-ptr,int pad-row,int pad-column,int screen-row- min,int screen-col-min,int screen-row-max,int screen-col-max);
[0140] 以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和 原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1. 一種基于Curses技術(shù)實(shí)現(xiàn)跨用戶跨主機(jī)管理的方法,其特征在于,包括以下步驟: 步驟1,配置多臺(tái)主機(jī)及用于管理所有主機(jī)的運(yùn)維平臺(tái); 步驟2,在各臺(tái)主機(jī)上配置Curses界面管理工具和expect腳本; 步驟3,運(yùn)維平臺(tái)遠(yuǎn)程登錄各主機(jī),并通過調(diào)用expect腳本進(jìn)行主機(jī)切換; 步驟4,運(yùn)維平臺(tái)調(diào)用切換到的主機(jī)的Curses界面管理工具監(jiān)控該主機(jī)。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟2中,將expect腳本嵌套在 Curses界面管理工具中。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟2還包括:基于Curses界面管 理工具開發(fā)srmonitor工具,用于對(duì)各主機(jī)進(jìn)行日常運(yùn)維管理及實(shí)現(xiàn)人機(jī)交互操作。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟3中,運(yùn)維平臺(tái)通過事先編制的 遠(yuǎn)程登錄腳本登錄到各主機(jī)。
5. 根據(jù)權(quán)利要求1至4中任一所述的方法,其特征在于,所述各主機(jī)為應(yīng)用在業(yè)務(wù)路由 器系統(tǒng)和/或增值業(yè)務(wù)訂購關(guān)系管理系統(tǒng)中的主機(jī)。
6. -種基于Curses技術(shù)實(shí)現(xiàn)跨用戶跨主機(jī)管理的系統(tǒng),其特征在于,包括多臺(tái)主機(jī)和 用于管理所有主機(jī)的運(yùn)維平臺(tái),且各臺(tái)主機(jī)上配置Curses界面管理工具和expect腳本,所 述運(yùn)維平臺(tái)用于遠(yuǎn)程登錄各主機(jī),并通過調(diào)用expect腳本進(jìn)行主機(jī)切換;所述運(yùn)維平臺(tái)還 用于調(diào)用切換到的主機(jī)的Curses界面管理工具監(jiān)控該主機(jī)。
7. 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述expect腳本嵌套在所述Curses界面 管理工具中。
8. 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述Curses界面管理工具中帶有 srmonitor工具,用于對(duì)各主機(jī)進(jìn)行日常運(yùn)維管理及實(shí)現(xiàn)人機(jī)交互操作。
9. 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述運(yùn)維平臺(tái)帶有事先編制的遠(yuǎn)程登錄 腳本,用于通過該遠(yuǎn)程登錄腳本登錄到各主機(jī)。
10. 根據(jù)權(quán)利要求6至9中任一所述的系統(tǒng),其特征在于,所述各主機(jī)為應(yīng)用在業(yè)務(wù)路 由器系統(tǒng)和/或增值業(yè)務(wù)訂購關(guān)系管理系統(tǒng)中的主機(jī)。
【文檔編號(hào)】H04L29/08GK104111869SQ201410317626
【公開日】2014年10月22日 申請(qǐng)日期:2014年7月4日 優(yōu)先權(quán)日:2014年7月4日
【發(fā)明者】彭德 申請(qǐng)人:北京思特奇信息技術(shù)股份有限公司