一種基于SSHxcute類庫的多服務(wù)器執(zhí)行命令的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別是涉及一種基于SSHxcute類庫的多服務(wù)器執(zhí)行命 令的方法。
【背景技術(shù)】
[0002] SSHxcute是一種現(xiàn)存的基于JAVA的遠(yuǎn)程執(zhí)行類庫,允許人們利用JAVA代碼通過 ssh遠(yuǎn)程執(zhí)行Linux/Unix系統(tǒng)上的命令或者腳本,這種方式不管是針對軟件測試還是系統(tǒng) 部署,都簡化了自動測試與系統(tǒng)部署的步驟。但是現(xiàn)有的情況只是針對單個(gè)服務(wù)器的連接。
[0003] 系統(tǒng)的爆炸性增長讓應(yīng)用的分布式變得越來越普遍。雖然現(xiàn)有的分布式系統(tǒng)的應(yīng) 用,給予應(yīng)用本身很大的可擴(kuò)展性。但是相對來說,維護(hù)性就可能受到其影響,讓維護(hù)人員 的工作量加倍和工作效率降低。其中,最常見的麻煩之一便是錯誤處理問題的查找。當(dāng)用 戶需要根據(jù)錯誤日志來診斷問題出現(xiàn)的時(shí)間和相對位置的時(shí)候,多個(gè)服務(wù)器之間的相互切 換和命令的重復(fù)鍵入是沒辦法被避免的,用戶需要重復(fù)各種簡單而且單調(diào)的工作模式,在 不同的機(jī)器當(dāng)中重復(fù)實(shí)現(xiàn),多服務(wù)器執(zhí)行命令的效率較低。
【發(fā)明內(nèi)容】
[0004] 有鑒于此,本發(fā)明的主要目的在于提供一種基于SSHxcute類庫的多服務(wù)器執(zhí)行 命令的方法,可以高效地令多服務(wù)器查找錯誤日志。
[0005] 為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于SSHxcute類庫的多服務(wù)器執(zhí)行命令的 方法,包括:
[0006] 響應(yīng)錯誤日志獲取指令,遍歷所有服務(wù)器,在各服務(wù)器中查找錯誤日志;
[0007] 在各服務(wù)器中查找錯誤日志包括:
[0008] 在各服務(wù)器中查找具有目標(biāo)任務(wù)標(biāo)識號的第一日志,根據(jù)所述第一日志確定對應(yīng) 的目標(biāo)服務(wù)器,在所述目標(biāo)服務(wù)器中查找具有錯誤標(biāo)識的第二日志。
[0009] 優(yōu)選地,所述基于SSHxcute類庫的多服務(wù)器執(zhí)行命令的方法還包括:
[0010] 響應(yīng)下載日志指令將目標(biāo)日志從服務(wù)器下載到本地。
[0011] 優(yōu)選地,所述基于SSHxcute類庫的多服務(wù)器執(zhí)行命令的方法還包括:
[0012] 響應(yīng)上傳配置指令將目標(biāo)配置文件從本地上傳到服務(wù)器。
[0013] 優(yōu)選地,遍歷所有服務(wù)器包括:
[0014] 響應(yīng)服務(wù)器磁盤空間信息命令,讀取使用率大于90%的服務(wù)器;
[0015] 從配置文件中加載用戶名、密碼以及服務(wù)器信息;
[0016] 設(shè)置當(dāng)SSH連接時(shí)不進(jìn)行公鑰確認(rèn);
[0017] 打開命令執(zhí)行管道;
[0018] 讀取命令輸出信息。
[0019] 優(yōu)選地,在各服務(wù)器中查找具有目標(biāo)任務(wù)標(biāo)識號的第一日志,根據(jù)所述第一日志 確定對應(yīng)的目標(biāo)服務(wù)器,在所述目標(biāo)服務(wù)器中查找具有錯誤標(biāo)識的第二日志包括:
[0020] 設(shè)置第一日志的目標(biāo)任務(wù)標(biāo)識號;
[0021] 設(shè)置所述第一日志在文件中的位置;
[0022] 設(shè)置第二日志的錯誤標(biāo)識;
[0023] 設(shè)置所述第二日志在文件中的位置;
[0024] 打開第一執(zhí)行管道;
[0025] 設(shè)置命令,從所述第一日志中找到所述目標(biāo)任務(wù)標(biāo)識號;
[0026] 關(guān)閉所述第一執(zhí)行管道;
[0027] 當(dāng)在所述第一日志中找到所述目標(biāo)任務(wù)標(biāo)識號后在同一服務(wù)器第二日志文件中 繼續(xù)查找所述錯誤標(biāo)識;
[0028] 打開第二執(zhí)行管道;
[0029] 輸出需要查找的日志信息;
[0030] 當(dāng)在服務(wù)器中找到具有錯誤標(biāo)識的第二日志后,停止其他服務(wù)器中錯誤日志的查 找。
[0031] 優(yōu)選地,響應(yīng)下載日志指令將目標(biāo)日志從服務(wù)器下載到本地包括:
[0032] 設(shè)置目標(biāo)端口;
[0033] 打開目標(biāo)ftp管道;
[0034] 轉(zhuǎn)到根目錄;
[0035] 從服務(wù)器上下載目標(biāo)日志文件到本地目錄。
[0036] 優(yōu)選地,響應(yīng)上傳配置指令將目標(biāo)配置文件從本地上傳到服務(wù)器包括:
[0037] 設(shè)置目標(biāo)端口;
[0038] 打開目標(biāo)ftp管道;
[0039] 轉(zhuǎn)到根目錄;
[0040] 上傳目標(biāo)配置文件到服務(wù)器上,當(dāng)服務(wù)器上已經(jīng)存在所述目標(biāo)配置文件時(shí),則覆 蓋原所述目標(biāo)配置文件。
[0041] 應(yīng)用本發(fā)明提供的一種基于SSHxcute類庫的多服務(wù)器執(zhí)行命令的方法,響應(yīng)錯 誤日志獲取指令,遍歷所有服務(wù)器,在各服務(wù)器中查找錯誤日志;在各服務(wù)器中查找錯誤日 志包括:在各服務(wù)器中查找具有目標(biāo)任務(wù)標(biāo)識號的第一日志,根據(jù)所述第一日志確定對應(yīng) 的目標(biāo)服務(wù)器,在所述目標(biāo)服務(wù)器中查找具有錯誤標(biāo)識的第二日志。本方法基于SSHxcute 類庫,可以實(shí)現(xiàn)多服務(wù)器之間的切換,遍歷所有服務(wù)器執(zhí)行命令,動態(tài)讀取服務(wù)器日志,上 傳下載目標(biāo)文件,可以縮短連接轉(zhuǎn)換服務(wù)器執(zhí)行命令的時(shí)間,提高查找錯誤日志的效率。
【附圖說明】
[0042] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù) 提供的附圖獲得其他的附圖。
[0043]圖1為本發(fā)明一種基于SSHxcute類庫的多服務(wù)器執(zhí)行命令的方法的實(shí)施例的原 理示意圖。
【具體實(shí)施方式】
[0044] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0045] 本發(fā)明實(shí)施例提供了一種基于SSHxcute類庫的多服務(wù)器執(zhí)行命令的方法,包括:
[0046] 響應(yīng)錯誤日志獲取指令,遍歷所有服務(wù)器,在各服務(wù)器中查找錯誤日志;
[0047] 其中,遍歷所有服務(wù)器的實(shí)現(xiàn)代碼如下:
[0048]
[0050] 上述程序語句中:
[0051]user,properties用來存放用戶名和密碼:
[0052]username=admin
[0053]password=xxxxxxxx
[0054]servers,propesties用來存放servers的IP信息例如:
[0055]#aliasname=hostname/IP
[0056]server1 = 192. 168. 0· 11