穆慧敏,胡玉良,程冬焱,李惠玲,王鵬偉,李 穎
(1.山西省地震局,山西 太原 030021;2.太原大陸裂谷動力學國家野外科學觀測研究站,山西 太原 030025)
?
山西地震前兆技術(shù)系統(tǒng)管理方案的設計及實現(xiàn)
穆慧敏1,2,胡玉良1,2,程冬焱1,2,李惠玲1,2,王鵬偉1,2,李穎1,2
(1.山西省地震局,山西太原030021;2.太原大陸裂谷動力學國家野外科學觀測研究站,山西太原030025)
摘要:為優(yōu)化山西地震前兆技術(shù)系統(tǒng)的運維管理方案,保障觀測系統(tǒng)高效、穩(wěn)定運行,以C#語言結(jié)合SharpSSH組件實現(xiàn)了在Windows環(huán)境下通過計算機語言指令實現(xiàn)遠程實時監(jiān)控和管理地震前兆技術(shù)系統(tǒng),為高效管理系統(tǒng)的運行提供了新的解決方案。該方案在投入實際應用后,效果良好。
關(guān)鍵詞:數(shù)據(jù)庫;管理方案;C#語言;SharpSSH組件
0引言
地震前兆技術(shù)系統(tǒng)運行管理的優(yōu)化對山西地震前兆觀測系統(tǒng)穩(wěn)定、可靠、高效運行至關(guān)重要。目前,該系統(tǒng)的運行監(jiān)控及管理主要通過瀏覽及查看中國地震前兆臺網(wǎng)數(shù)據(jù)管理系統(tǒng)獲取,輔助SSH或VNC等工具遠程登錄技術(shù)系統(tǒng),通過命令行方式查看或者依托其它監(jiān)控軟件對服務器的網(wǎng)絡通訊[1]、地震前兆數(shù)據(jù)庫表[2]等信息進行監(jiān)控[3],缺少對技術(shù)系統(tǒng)的高效管理。比如管理系統(tǒng)啟動及停止、數(shù)據(jù)庫啟動及停止、數(shù)據(jù)庫備份、系統(tǒng)校時、服務器重啟,均需要人工逐項操作[4]。本文以C#語言結(jié)合開源SharpSSH組件實現(xiàn)在Windows環(huán)境下通過計算機語言指令遠程監(jiān)控和管理地震前兆技術(shù)系統(tǒng),不僅可以監(jiān)控服務器的網(wǎng)絡通訊、CPU、硬盤、內(nèi)存、數(shù)據(jù)庫表等信息,而且實現(xiàn)對技術(shù)系統(tǒng)的高效管理。在技術(shù)系統(tǒng)出現(xiàn)異常時,通過計算機語言指令處理,減少對專業(yè)人員的依賴性,從而實現(xiàn)技術(shù)系統(tǒng)智能化管理。
1SSH和SharpSSH簡介
1.1SSH簡介
SSH為Secure Shell的縮寫,由IETF的網(wǎng)絡工作小組(Network Working Group)制定。是目前較為可靠、建立在應用層和傳輸層基礎(chǔ)上專為遠程登錄會話和其他網(wǎng)絡服務提供安全性的協(xié)議。該協(xié)議可有效防止遠程管理過程中的信息泄露問題,在正確使用時可彌補網(wǎng)絡中存在的漏洞。SSH客戶端適用于多種平臺,幾乎所有UNIX平臺,包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平臺,都可運行SSH,實現(xiàn)服務端和客戶端之間雙向文件傳輸。
SSH用于遠程登錄主機,登錄方式通常有兩種:口令登錄和公鑰登錄。
口令登錄:通過在服務端設定的用戶名和密碼進行登錄,每次登錄都需填寫密碼;公鑰登錄:通過一對公鑰和私鑰登錄,公鑰存放在服務端,私鑰存放在客戶端。在登錄時服務端向客戶端發(fā)出一串隨機字符,客戶端通過私鑰進行加密后發(fā)至服務端,服務端接受后用公鑰進行解密,然后匹配是否正確來驗證登錄。需要注意的是,服務端的公鑰名稱和用戶名一致,用以區(qū)分不同用戶的不同公鑰,這樣每次就可直接用公鑰登錄,省去密碼登錄的繁瑣。
1.2SharpSSH簡介
SharpSSH是純.Net實現(xiàn)的SSH2客戶端協(xié)議的組件,用于與SSH服務器通信,支持SSH/SCP/SFTP等協(xié)議。它是Java開源項目JSch的一個C#移植,擁有口令登錄、密鑰交換、公鑰登錄、生成DSA和RSA密鑰對、端口轉(zhuǎn)發(fā)、流轉(zhuǎn)發(fā)、遠程執(zhí)行等功能。
綜上所述,鑒于SharpSSH組件具備的強大功能,決定采用該組件實現(xiàn)地震前兆系統(tǒng)運行的監(jiān)控管理。
2設計方案及功能實現(xiàn)
2.1設計方案
結(jié)合近幾年山西前兆臺網(wǎng)系統(tǒng)運行的實際情況,地震前兆技術(shù)系統(tǒng)運行維護主要存在系統(tǒng)運行緩慢、數(shù)據(jù)交換停滯、儀器采集元數(shù)據(jù)錯誤、儀器采集失敗、數(shù)據(jù)庫冷備份步驟繁瑣等問題[5]。為做好系統(tǒng)運行維護管理工作,需從技術(shù)上實現(xiàn)以下功能:中國地震前兆臺網(wǎng)數(shù)據(jù)管理系統(tǒng)啟動及停止、Oracle數(shù)據(jù)庫啟動及停止、遠程校時、Oracle數(shù)據(jù)庫備份、重啟系統(tǒng)[6]等。該設計方案主要包含以下兩部分:
(1) 服務端。
地震前兆技術(shù)系統(tǒng)采用SUSE Linux enterprise server操作系統(tǒng),數(shù)據(jù)庫采用Oracle 10 g。在服務端執(zhí)行5個Shell腳本,分別用于實現(xiàn)管理系統(tǒng)啟動、管理系統(tǒng)停止、Oracle數(shù)據(jù)庫啟動、Oracle數(shù)據(jù)庫停止、Oracle數(shù)據(jù)庫冷備份等。
(2) 客戶端。
基于windows 7操作系統(tǒng)Microsoft Visual Studio 2010(以下簡稱VS2010)開發(fā)環(huán)境,通過引入SharpSSH動態(tài)鏈接庫文件(Tamir.sharpSSH.dll、Org.Mentalis.Security.dll、DiffieHellman.dll),采用C#語言編寫代碼,實現(xiàn)自動登錄地震前兆技術(shù)系統(tǒng),遠程執(zhí)行服務端5個Shell腳本或Linux命令,最終實現(xiàn)遠程管理地震前兆技術(shù)系統(tǒng)。
2.2功能實現(xiàn)
2.2.1服務端
使用SSH軟件以root用戶登錄到地震前兆技術(shù)系統(tǒng)服務器,創(chuàng)建一個文件夾testShell用于存放Shell腳本文件及日志文件。
(1) 管理系統(tǒng)啟動及停止腳本。
中國地震前兆臺網(wǎng)數(shù)據(jù)管理系統(tǒng)軟件在服務器根目錄內(nèi)install文件下有系統(tǒng)啟動和停止的Shell腳本,分別是run.sh和stoprun.sh,遠程直接執(zhí)行這兩個腳本可啟動和停止管理系統(tǒng)。
(2) 數(shù)據(jù)庫啟動腳本。
使用SSH軟件以root用戶登錄到地震前兆技術(shù)系統(tǒng)服務器后,進入testShell文件夾下,使用vi命令按圖1所示編輯startOracle.sh腳本[7]。
圖1 Oracle數(shù)據(jù)庫啟動腳本Fig.1 Startup script of Oracle database
(3) 數(shù)據(jù)庫停止腳本。
使用SSH軟件以root用戶登錄到地震前兆技術(shù)系統(tǒng)服務器后,進入testShell文件夾下,使用vi命令按圖2所示編輯stopOracle.sh腳本。
圖2 Oracle數(shù)據(jù)庫停止腳本Fig.2 End script of Oracle database
(4) 冷備份數(shù)據(jù)庫。
使用SSH軟件以root用戶登錄到地震前兆技術(shù)系統(tǒng)服務器后,進入testShell文件夾下,使用vi命令按圖3所示編輯backOracle.sh腳本[7],冷備份數(shù)據(jù)庫流程是停止管理系統(tǒng)→停止數(shù)據(jù)庫→壓縮數(shù)據(jù)庫文件。
圖3 冷備份數(shù)據(jù)庫Fig.3 Cold backup database
2.2.2客戶端
在windows 7操作系統(tǒng)VS2010開發(fā)環(huán)境下,采用遠程口令方式登錄地震前兆技術(shù)系統(tǒng),遠程執(zhí)行以上5個Shell腳本,即可實現(xiàn)管理系統(tǒng)啟動、管理系統(tǒng)停止、Oracle數(shù)據(jù)庫啟動、Oracle數(shù)據(jù)庫停止、Oracle數(shù)據(jù)庫備份功能;利用Linux遠程校時命令和重啟命令即可實現(xiàn)技術(shù)系統(tǒng)服務器時間校準和系統(tǒng)重啟??蛻舳瞬渴鹆鞒虉D如圖4所示。
圖4 客戶端流程圖Fig.4 Client flow chart
以啟動管理系統(tǒng)為例,在SSH命令行下啟動管理系統(tǒng)命令是source/install/run.sh。這里借助SharpSSH組件在VS2010開發(fā)環(huán)境下采用C#語言實現(xiàn)SSH命令的發(fā)送功能,核心程序如圖5所示。
圖5 核心程序Fig.5 The core program
通過調(diào)用此函數(shù)就可向指定的Linux服務器發(fā)送SSH命令,實現(xiàn)遠程管理目的。
客戶端采用兼容DOS的控制臺程序方式對地震前兆技術(shù)系統(tǒng)進行管理,整體界面如第21頁圖6所示。
在界面中,登錄服務器成功后,通過輸入相應的數(shù)字選項,即可實現(xiàn)對地震前兆技術(shù)系統(tǒng)的遠程管理,簡單方便。
圖6 命令界面Fig.6 Command interface
3應用效果
山西地震前兆技術(shù)系統(tǒng)運行管理客戶端的設計及實現(xiàn),巧妙結(jié)合C#和開源Sharp組件,充分運用技術(shù)手段實現(xiàn)對系統(tǒng)運行的高效管理,減少了對專業(yè)人員的依賴,該方案在山西地震前兆臺網(wǎng)中心應用以來,取得非常好的效果,保證了地震前兆臺網(wǎng)技術(shù)系統(tǒng)的穩(wěn)定、可靠、高效運行。
4結(jié)束語
山西地震前兆技術(shù)系統(tǒng)運行管理新方法的研究,為做好系統(tǒng)維護工作和實現(xiàn)技術(shù)系統(tǒng)優(yōu)化管理提供了新的解決思路和方案。本文結(jié)合C#和Sharp組件編寫了客戶端指令和服務端腳本,并進行功能應用測試,今后將在此基礎(chǔ)上繼續(xù)探索并應用Sharp組件的其它功能,進一步提升技術(shù)系統(tǒng)管理運行的高效性。
參考文獻:
[1]姚會琴,趙穎,周利霞,等.監(jiān)控信息可視化技術(shù)在天津地震前兆臺網(wǎng)的應用研究[J].震災防御技術(shù),2014,9(3):550-555.
[2]周克昌,蔣春花,紀壽文,等.地震前兆數(shù)據(jù)庫系統(tǒng)設計[J].地震,2010(2):143-151.
[3]王建國,劉春國,王偉,等.地震前兆數(shù)據(jù)庫綜合管理系統(tǒng)[J].大地測量與地球動力學,2013,33(A01):114-116.
[4]王建國,姚會琴,高遜.天津市地震前兆臺網(wǎng)的運行監(jiān)控與維護管理[J].大地測量與地球動力學,2010,30(A01):111-115.
[5]胡玉良,程冬焱,穆慧敏,等.山西地震前兆臺網(wǎng)系統(tǒng)運行維護[J].山西地震,2013(3):44-48.
[6]張紅秀,郭林旺,郭國祥,等.山西數(shù)字化前兆觀測系統(tǒng)的常見故障與維護[J].大地測量與地球動力學,2013,33(A02):139-141.
[7]陳傳華,曲保安,朱榮,等.前兆管理系統(tǒng)數(shù)據(jù)庫冷備份及恢復方法實現(xiàn)[J].地震地磁觀測與研究,2010(4):135-139.
文章編號:1000-6265(2016)02-0018-04
收稿日期:2016-02-22
基金項目:山西省地震局科研項目(SBK-1409)。
第一作者簡介:穆慧敏(1981—),女,山西省太原市人。2005年畢業(yè)于中北大學,工程師。
中圖分類號:P315.69
文獻標志碼:A
Design and Implementation of the Management Scheme of Shanxi Earthquake Precursor Technology System
MU Hui-min1,2, HU Yu-liang1,2, CHENG Dong-yan1,2, LI Hui-ling1,2, WANG Peng-wei1,2, LI Yin1,2
(1.Earthquake Administration of Shanxi Province, Taiyuan, Shanxi 030021, China; 2.State Key Observatory of Shanxi Rift System, Taiyuan, Shanxi 030025, China)
Abstract:In order to optimize the operation and maintenance management of the earthquake precursor technology system and ensure efficient and stable operation of the observation system, remote real time management in Windows environment is implemented by C#language combined with SharpSSH component. It provides a new solution for the operation of the high efficiency management technology system. The practical application of this scheme is effective.
Key words:Database; Management scheme; C#language; SharpSSH component