一種unix環(huán)境軟件系統(tǒng)升級(jí)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種UNIX環(huán)境軟件系統(tǒng)升級(jí)方法。
【背景技術(shù)】
[0002]企業(yè)內(nèi)許多重要的軟件系統(tǒng)(如大型PDM系統(tǒng))通常部署在性能穩(wěn)定的UNIX系統(tǒng)或Linux等類Unix操作系統(tǒng)環(huán)境中。如圖1所示,系統(tǒng)管理員個(gè)人操作終端一般與應(yīng)用系統(tǒng)服務(wù)器之間有防火墻隔離,管理員在個(gè)人操作終端通過(guò)相應(yīng)端口或軟件連接到服務(wù)器區(qū)管理中間機(jī)(一般為Windows操作系統(tǒng)),然后再與應(yīng)用系統(tǒng)服務(wù)器建立連接進(jìn)行管理操作。
[0003]應(yīng)用系統(tǒng)升級(jí)活動(dòng)的進(jìn)行受到升級(jí)環(huán)境的制約,應(yīng)用系統(tǒng)管理員得到升級(jí)補(bǔ)丁包后,通過(guò)操作終端按照如下步驟完成系統(tǒng)升級(jí):
[0004]①將升級(jí)補(bǔ)丁包導(dǎo)入操作終端機(jī);
[0005]②經(jīng)過(guò)認(rèn)證穿過(guò)防火墻,與管理中間機(jī)建立連接;
[0006]③將升級(jí)補(bǔ)丁包上傳至管理中間機(jī);
[0007]④使用SSH客戶端工具,與宿主操作系統(tǒng)為UNIX (或其它類UNIX系統(tǒng))的應(yīng)用系統(tǒng)服務(wù)器建立連接,并將補(bǔ)丁包上傳;
[0008]⑤按照開發(fā)方提供的升級(jí)說(shuō)明,通過(guò)SSH客戶端逐條輸入命令,包括停止應(yīng)用系統(tǒng)服務(wù)、逐一部署補(bǔ)丁包中的文件、手工備份被替換的文件以及重啟應(yīng)用系統(tǒng)服務(wù)等。
[0009]鑒于一般企業(yè)內(nèi)部安全管理規(guī)定的要求以及應(yīng)用系統(tǒng)本身的部署特點(diǎn),目前的升級(jí)流程是比較科學(xué)和相對(duì)固化的,但存在如下潛在缺陷:
[0010]①開發(fā)方提供的補(bǔ)丁正確,但如果補(bǔ)丁部署說(shuō)明中升級(jí)步驟有一處有誤,則可能導(dǎo)致升級(jí)失?。?br>[0011 ] ②應(yīng)用系統(tǒng)管理人員直接登錄到應(yīng)用服務(wù)器進(jìn)行操作,存在進(jìn)行正常升級(jí)命令以外的誤操作的可能,也許會(huì)因?yàn)橐淮紊?jí)引入不可預(yù)知的問(wèn)題;
[0012]③不同的補(bǔ)丁包提供人員提供的補(bǔ)丁包形式上存在差異,應(yīng)用管理人員對(duì)升級(jí)包維護(hù)的方式也存在差異,這些都會(huì)導(dǎo)致升級(jí)過(guò)程的不規(guī)范現(xiàn)象;
[0013]④當(dāng)一次升級(jí)涉及數(shù)以百計(jì)的文件需要更新或添加時(shí),過(guò)程相當(dāng)繁瑣而且容易出錯(cuò);
[0014]⑤升級(jí)補(bǔ)丁先在測(cè)試環(huán)境上部署、測(cè)試通過(guò)后,可能還需手動(dòng)修改部分文件內(nèi)容,重新得到適用于正式生產(chǎn)環(huán)境的補(bǔ)丁包,更改的正確性靠人工保證;
[0015]⑥升級(jí)后如果需要回滾,特別是如果需要回滾到若干次升級(jí)前的狀態(tài),對(duì)于實(shí)施人員來(lái)說(shuō)將是災(zāi)難。
[0016]華為技術(shù)有限公司專利CN102193805A公開了一種軟件補(bǔ)丁升級(jí)方法,該方法可以自動(dòng)生成備份程序,根據(jù)補(bǔ)丁包自動(dòng)升級(jí),并且當(dāng)本次升級(jí)失敗時(shí)可以自動(dòng)回滾。但是該方法主要存在以下問(wèn)題:
[0017]針對(duì)“自解釋”:傳統(tǒng)方式下,開發(fā)方提供升級(jí)包和升級(jí)操作說(shuō)明,升級(jí)包中的文件可以平級(jí)放置(只要不重名),升級(jí)操作說(shuō)明中會(huì)告訴操作實(shí)施人員如何逐一部署升級(jí)包中的文件。這存在如下潛在缺陷:一是如果開發(fā)方提供的升級(jí)包正確,但如果補(bǔ)丁部署說(shuō)明中升級(jí)步驟有一處有誤,則可能導(dǎo)致升級(jí)失?。欢菍?shí)施人員直接登陸到應(yīng)用服務(wù)器進(jìn)行操作,存在進(jìn)行正常升級(jí)命令以外的誤操作的可能,也許會(huì)因?yàn)橐淮紊?jí)引入不可預(yù)知的問(wèn)題;三是如果當(dāng)一次升級(jí)涉及數(shù)以百計(jì)的文件需要更新或添加時(shí),過(guò)程相當(dāng)繁瑣、耗時(shí)且容易出錯(cuò)。
[0018]針對(duì)補(bǔ)丁自動(dòng)生成:傳統(tǒng)方式下,如果一個(gè)應(yīng)用系統(tǒng)在不同的服務(wù)器上部署了多套,那么針對(duì)不同實(shí)例的應(yīng)用系統(tǒng)要提供不同的升級(jí)包文件,或者說(shuō)在某一臺(tái)服務(wù)器上部署測(cè)試通過(guò)的升級(jí)包要部署到另一臺(tái)服務(wù)器上時(shí),需要手工修改部分文件內(nèi)容,例如對(duì)于測(cè)試系統(tǒng)和正式系統(tǒng)而言,升級(jí)包先在測(cè)試系統(tǒng)上部署、測(cè)試通過(guò)后,可能還需手動(dòng)修改部分文件內(nèi)容,重新得到適用于正式生產(chǎn)環(huán)境的升級(jí)包,更改的正確性靠人工保證。
[0019]針對(duì)按需回滾:升級(jí)后,如果需要回滾,特別是如果需要回滾到若干次升級(jí)前的狀態(tài),對(duì)于實(shí)施人員來(lái)說(shuō)將是災(zāi)難。華為技術(shù)有限公司專利CN102193805A公開了一種軟件補(bǔ)丁升級(jí)方法,該方法可以自動(dòng)生成備份程序,根據(jù)補(bǔ)丁包自動(dòng)升級(jí),并且當(dāng)本次升級(jí)失敗時(shí)可以自動(dòng)回滾。但該方法僅支持當(dāng)次升級(jí)失敗后的回滾,不支持當(dāng)次升級(jí)成功后由于其他需要進(jìn)行回滾,或者將若干次之前升級(jí)操作全部回滾的需求。
【發(fā)明內(nèi)容】
[0020]為解決上述問(wèn)題,本發(fā)明提供一種UNIX環(huán)境軟件系統(tǒng)升級(jí)方法,正式環(huán)境補(bǔ)丁自動(dòng)生成,沒(méi)有手工更改補(bǔ)丁內(nèi)容,補(bǔ)丁的正確性、一致性得到保障。
[0021]本發(fā)明的UNIX環(huán)境軟件系統(tǒng)升級(jí)方法,其包括以下步驟:
[0022]步驟I,為該UNIX環(huán)境軟件系統(tǒng)升級(jí)所使用的升級(jí)包預(yù)先建立目錄結(jié)構(gòu),該補(bǔ)丁包目錄結(jié)構(gòu)包括所有的升級(jí)文件,所述升級(jí)文件根據(jù)目標(biāo)放置位置設(shè)計(jì)的路徑信息;
[0023]步驟2,升級(jí)包的安裝部署:
[0024]將升級(jí)包通過(guò)終端傳到應(yīng)用服務(wù)器上,應(yīng)用服務(wù)器對(duì)該升級(jí)包進(jìn)行解壓,并遍歷升級(jí)包內(nèi)的升級(jí)文件,根據(jù)路徑信息將相應(yīng)的升級(jí)文件傳輸至目標(biāo)放置位置,然后進(jìn)行判斷:若目標(biāo)放置位置上存在傳輸?shù)纳?jí)文件,則先將目標(biāo)放置位置上的原文件傳輸至備份庫(kù)以備份文件夾的方式進(jìn)行備份,然后將目標(biāo)放置位置上的原文件替換為傳輸?shù)纳?jí)文件;若目標(biāo)放置位置上不存在傳輸?shù)纳?jí)文件,則直接放置于目標(biāo)位置;
[0025]安裝部署完畢,同時(shí)備份庫(kù)內(nèi)建立一次升級(jí)的備份文件夾和在日志里記錄一次本次升級(jí)的時(shí)間戳,該備份文件夾內(nèi)包含本次升級(jí)之前替換的原文件,同時(shí)備份文件夾以該次升級(jí)時(shí)間戳命名;
[0026]步驟3,根據(jù)所有應(yīng)用服務(wù)器中兩兩之間的配置差異建立規(guī)則映射表,然后將該規(guī)則映射表預(yù)先存儲(chǔ)至所有應(yīng)用服務(wù)器內(nèi);
[0027]設(shè)應(yīng)用服務(wù)器A為經(jīng)步驟2后的升級(jí)包安裝部署完畢并經(jīng)功能性能測(cè)試成功的應(yīng)用服務(wù)器,并將應(yīng)用服務(wù)器A上安裝部署完畢并測(cè)試成功的升級(jí)包直接傳輸至升級(jí)包未安裝部署完畢的應(yīng)用服務(wù)器B上,該應(yīng)用服務(wù)器B接收所述升級(jí)包并遍歷其存儲(chǔ)的規(guī)則映射表中的規(guī)則,并根據(jù)其中應(yīng)用服務(wù)器A與應(yīng)用服務(wù)器B的映射規(guī)則自動(dòng)修正測(cè)試成功的升級(jí)包中文件內(nèi)容,得到適用于應(yīng)用服務(wù)器B的自適應(yīng)升級(jí)包,應(yīng)用服務(wù)器B根據(jù)步驟2的方式完成自適應(yīng)升級(jí)包的安裝部署;
[0028]步驟4,安裝部署完畢并經(jīng)功能性能測(cè)試成功的應(yīng)用服務(wù)器對(duì)未安裝部署完畢并經(jīng)功能性能測(cè)試成功的應(yīng)用服務(wù)器按照步驟3的方式,完成未安裝部署完畢并經(jīng)功能性能測(cè)試成功的應(yīng)用服務(wù)器自適應(yīng)升級(jí)包的安裝部署,直至所有應(yīng)用服務(wù)器完成自適應(yīng)升級(jí)包的安裝部署。
[0029]進(jìn)一步的,上述應(yīng)用服務(wù)器安裝部署后,在使用過(guò)程出現(xiàn)故障,則讀取備份庫(kù)內(nèi)的日志,得到所有歷史升級(jí)的時(shí)間戳列表,根據(jù)故障定位時(shí)間戳列表中需要回滾的升級(jí)時(shí)間戳,從該升級(jí)時(shí)間戳至今所有的升級(jí)包根據(jù)時(shí)間戳的時(shí)間順序逆向回滾。
[0030]進(jìn)一步的,回滾的內(nèi)容包括:
[0031]遍歷備份庫(kù)內(nèi)本次回滾的備份文件夾,將每一個(gè)備份文件傳輸至原位置,并替換原位置上的升級(jí)文件。
[0032]有益效果:
[0033]本發(fā)明通過(guò)對(duì)補(bǔ)丁文件層級(jí)目錄的編制要求,使得補(bǔ)丁文件可以“自解釋”所應(yīng)該放置的位置,省掉補(bǔ)丁文件放置說(shuō)明。本發(fā)明正式環(huán)境補(bǔ)丁自動(dòng)生成:正式生產(chǎn)環(huán)境的補(bǔ)丁是從測(cè)試環(huán)境測(cè)試通過(guò)的補(bǔ)丁經(jīng)過(guò)依據(jù)規(guī)則表的自動(dòng)更正而得到的,沒(méi)有手工更改補(bǔ)丁內(nèi)容,補(bǔ)丁的正確性、一致性得到保障。
[0034]另外本發(fā)明補(bǔ)丁按需回滾。該方法設(shè)計(jì)了完備的日志和補(bǔ)丁存儲(chǔ)結(jié)構(gòu),管理員可根據(jù)需要一鍵快速回滾若干次補(bǔ)丁,使系統(tǒng)恢復(fù)至需要的狀態(tài)。
【附圖說(shuō)明】
[0035]圖1為現(xiàn)有技術(shù)的UNIX環(huán)境軟件系統(tǒng)升級(jí)方法示意圖;
[0036]圖2為本發(fā)明的UNIX環(huán)境軟件系統(tǒng)升級(jí)方法流程圖。
【具體實(shí)施方式】
[0037]本發(fā)明的技術(shù)方案如下:
[0038]—種UNIX環(huán)境軟件系統(tǒng)升級(jí)方法,其包括以下步驟:
[0039]步驟I,為該UNIX環(huán)境軟件系統(tǒng)升級(jí)所使用的升級(jí)包預(yù)先建立目錄結(jié)構(gòu),該補(bǔ)丁包目錄結(jié)構(gòu)包括所有的升級(jí)文件,所述升級(jí)文件根據(jù)目標(biāo)放置位置設(shè)計(jì)的路徑信息。
[0040]步驟2,升級(jí)包的安裝部署:
[0041]將升級(jí)包通過(guò)終端傳到應(yīng)用服務(wù)器上,應(yīng)用服務(wù)器對(duì)該升級(jí)包進(jìn)行解壓,并遍歷升級(jí)包內(nèi)的升級(jí)文件,根據(jù)