本申請涉及計算機領(lǐng)域,尤其涉及一種系統(tǒng)升級的方法及設(shè)備。
背景技術(shù):
現(xiàn)有技術(shù)中,傳統(tǒng)系統(tǒng)升級方案主要為:在目標(biāo)系統(tǒng)上執(zhí)行升級程序,進行文件替換及文件修改操作以達到對目標(biāo)系統(tǒng)進行升級的目的。由于升級程序運行于目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境上,使得升級程序運行的環(huán)境與目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境為同一環(huán)境,即傳統(tǒng)的系統(tǒng)升級為目標(biāo)系統(tǒng)在自身系統(tǒng)環(huán)境下為自身進行升級,在對系統(tǒng)本身的底層軟件,尤其是在對文件系統(tǒng)(例如filesystem)及目錄結(jié)構(gòu)進行升級時,會導(dǎo)致系統(tǒng)本身出現(xiàn)運行問題,從而影響升級程序的運行,并對整個升級操作造成極大的風(fēng)險,甚至系統(tǒng)宕機。
技術(shù)實現(xiàn)要素:
本申請的一個目的是提供一種系統(tǒng)升級的方法及設(shè)備,以解決現(xiàn)有技術(shù)中采用傳統(tǒng)系統(tǒng)升級的方案導(dǎo)致的升級風(fēng)險高的問題。
根據(jù)本申請的一個方面,提供了一種系統(tǒng)升級的方法,該方法包括:
在目標(biāo)系統(tǒng)中嵌入升級系統(tǒng)環(huán)境,其中,所述升級系統(tǒng)環(huán)境與所述目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境相互獨立;
獲取所述目標(biāo)系統(tǒng)中的系統(tǒng)軟件和非系統(tǒng)軟件;
在所述升級系統(tǒng)環(huán)境中對所述系統(tǒng)軟件進行升級,若升級成功,則切換至所述自身系統(tǒng)環(huán)境對所述非系統(tǒng)軟件進行升級。
進一步地,上述方法中,所述在所述升級系統(tǒng)環(huán)境中對所述系統(tǒng)軟件進行升級之前,還包括:
判斷所述目標(biāo)系統(tǒng)中的根分區(qū)的空閑存儲空間是否滿足預(yù)設(shè)的系統(tǒng)升級需求空間,
若滿足,則對所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫進行轉(zhuǎn)存。
進一步地,上述方法中,所述對所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫進行轉(zhuǎn)存,包括:
基于預(yù)設(shè)的數(shù)據(jù)存儲列表,將所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)轉(zhuǎn)存至預(yù)設(shè)目標(biāo)路徑中。
進一步地,上述方法中,所述基于預(yù)設(shè)的數(shù)據(jù)存儲列表,將所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)轉(zhuǎn)存至預(yù)設(shè)目標(biāo)路徑中,包括:
根據(jù)所述數(shù)據(jù)庫的類型,確定對應(yīng)的數(shù)據(jù)庫指令;
基于所述預(yù)設(shè)的數(shù)據(jù)存儲列表和數(shù)據(jù)庫指令,將所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)轉(zhuǎn)存至預(yù)設(shè)目標(biāo)路徑中。
進一步地,上述方法中,所述判斷所述目標(biāo)系統(tǒng)中的根分區(qū)的空閑存儲空間是否滿足預(yù)設(shè)的系統(tǒng)升級需求空間之后,還包括:
若不滿足,則對所述根分區(qū)中存儲的數(shù)據(jù)進行轉(zhuǎn)存,直至所述根分區(qū)的空閑存儲空間滿足所述預(yù)設(shè)的系統(tǒng)升級需求空間。
進一步地,上述方法中,所述對所述根分區(qū)中存儲的數(shù)據(jù)進行轉(zhuǎn)存之后,還包括:
若所述根分區(qū)的空閑存儲空間閾值不滿足所述預(yù)設(shè)的系統(tǒng)升級需求空間,則提示用戶所述根分區(qū)不滿足所述預(yù)設(shè)的系統(tǒng)升級需求空間。
進一步地,上述方法中,所述在所述升級系統(tǒng)環(huán)境中對所述系統(tǒng)軟件進行升級,若升級成功,則切換至所述自身系統(tǒng)環(huán)境對所述非系統(tǒng)軟件進行升級之后,還包括:
刪除嵌入至所述目標(biāo)系統(tǒng)中的所述升級系統(tǒng)環(huán)境。
進一步地,上述方法中,所述在所述升級系統(tǒng)環(huán)境中對所述系統(tǒng)軟件進行升級,若升級成功,則切換至所述自身系統(tǒng)環(huán)境對所述非系統(tǒng)軟件進行升級之后,還包括:
基于所述預(yù)設(shè)的數(shù)據(jù)存儲列表和轉(zhuǎn)存至所述預(yù)設(shè)目標(biāo)路徑下的所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù),對所述數(shù)據(jù)庫進行恢復(fù)。
進一步地,上述方法中,所述在所述升級系統(tǒng)環(huán)境中對所述系統(tǒng)軟件進行升級,若升級成功,則切換至所述自身系統(tǒng)環(huán)境對所述非系統(tǒng)軟件進行升級之后,還包括:
基于所述預(yù)設(shè)的數(shù)據(jù)存儲列表、數(shù)據(jù)庫指令及轉(zhuǎn)存至所述預(yù)設(shè)目標(biāo)路徑下的所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù),對所述數(shù)據(jù)庫進行恢復(fù)。
進一步地,上述方法中,所述在所述升級系統(tǒng)環(huán)境中對所述系統(tǒng)軟件進行升級,若升級成功,則切換至所述自身系統(tǒng)環(huán)境對所述非系統(tǒng)軟件進行升級之后,還包括:
基于所述數(shù)據(jù)存儲列表,對所述目標(biāo)系統(tǒng)的所述自身系統(tǒng)環(huán)境進行數(shù)據(jù)清理。
根據(jù)本申請的另一方面,還提供了一種系統(tǒng)升級的設(shè)備,其中,所述設(shè)備包括:
嵌入裝置,用于在目標(biāo)系統(tǒng)中嵌入升級系統(tǒng)環(huán)境,其中,所述升級系統(tǒng)環(huán)境與所述目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境相互獨立;
獲取裝置,用于獲取所述目標(biāo)系統(tǒng)中的系統(tǒng)軟件和非系統(tǒng)軟件;
升級裝置,用于在所述升級系統(tǒng)環(huán)境中對所述系統(tǒng)軟件進行升級,若升級成功,則切換至所述自身系統(tǒng)環(huán)境對所述非系統(tǒng)軟件進行升級。
進一步地,上述設(shè)備中,所述升級裝置還用于:
判斷所述目標(biāo)系統(tǒng)中的根分區(qū)的空閑存儲空間是否滿足預(yù)設(shè)的系統(tǒng)升級需求空間,
若滿足,則對所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫進行轉(zhuǎn)存。
進一步地,上述設(shè)備中,所述升級裝置還用于:
基于預(yù)設(shè)的數(shù)據(jù)存儲列表,將所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)轉(zhuǎn)存至預(yù)設(shè)目標(biāo)路徑中。
進一步地,上述設(shè)備中,所述升級裝置還用于:
根據(jù)所述數(shù)據(jù)庫的類型,確定對應(yīng)的數(shù)據(jù)庫指令;
基于所述預(yù)設(shè)的數(shù)據(jù)存儲列表和數(shù)據(jù)庫指令,將所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)轉(zhuǎn)存至預(yù)設(shè)目標(biāo)路徑中。
進一步地,上述設(shè)備中,所述升級裝置還用于:
若不滿足,則對所述根分區(qū)中存儲的數(shù)據(jù)進行轉(zhuǎn)存,直至所述根分區(qū)的空閑存儲空間滿足所述預(yù)設(shè)的系統(tǒng)升級需求空間。
進一步地,上述設(shè)備中,所述升級裝置還用于:
若所述根分區(qū)的空閑存儲空間閾值不滿足所述預(yù)設(shè)的系統(tǒng)升級需求空間,則提示用戶所述根分區(qū)不滿足所述預(yù)設(shè)的系統(tǒng)升級需求空間。
進一步地,上述設(shè)備中,所述升級裝置還用于:
刪除嵌入至所述目標(biāo)系統(tǒng)中的所述升級系統(tǒng)環(huán)境。
進一步地,上述設(shè)備中,所述升級裝置還用于:
基于所述預(yù)設(shè)的數(shù)據(jù)存儲列表和轉(zhuǎn)存至所述預(yù)設(shè)目標(biāo)路徑下的所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù),對所述數(shù)據(jù)庫進行恢復(fù)。
進一步地,上述設(shè)備中,所述升級裝置還用于:
基于所述預(yù)設(shè)的數(shù)據(jù)存儲列表、數(shù)據(jù)庫指令及轉(zhuǎn)存至所述預(yù)設(shè)目標(biāo)路徑下的所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù),對所述數(shù)據(jù)庫進行恢復(fù)。
進一步地,上述設(shè)備中,所述升級裝置還用于:
基于所述數(shù)據(jù)存儲列表,對所述目標(biāo)系統(tǒng)的所述自身系統(tǒng)環(huán)境進行數(shù)據(jù)清理。
與現(xiàn)有技術(shù)相比,本申請通過在目標(biāo)系統(tǒng)中嵌入升級系統(tǒng)環(huán)境,其中,所述升級系統(tǒng)環(huán)境與所述目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境相互獨立;獲取所述目標(biāo)系統(tǒng)中的系統(tǒng)軟件和非系統(tǒng)軟件;在所述升級系統(tǒng)環(huán)境中對所述系統(tǒng)軟件進行升級,若升級成功,則切換至所述自身系統(tǒng)環(huán)境對所述非系統(tǒng)軟件進行升級,實現(xiàn)了在升級系統(tǒng)環(huán)境中對目標(biāo)系統(tǒng)的系統(tǒng)軟件的升級,使得對目標(biāo)系統(tǒng)的系統(tǒng)軟件的升級脫離其自身系統(tǒng)環(huán)境,不再受其自身系統(tǒng)環(huán)境的影響,進而避免系統(tǒng)軟件的升級程序與其自身系統(tǒng)環(huán)境之間相互影響的局限性,在嵌入的升級系統(tǒng)環(huán)境中對系統(tǒng)軟件升級成功之后,切換至自身系統(tǒng)環(huán)境中對目標(biāo)系統(tǒng)的非系統(tǒng)軟件進行升級,實現(xiàn)對目標(biāo)系統(tǒng)的升級。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
圖1示出根據(jù)本申請一個方面的一種系統(tǒng)升級的方法的流程示意圖;
圖2示出根據(jù)本申請一個方面的一種系統(tǒng)升級的設(shè)備的結(jié)構(gòu)示意圖。
附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
具體實施方式
下面結(jié)合附圖對本申請作進一步詳細描述。
在本申請一個典型的配置中,終端、服務(wù)網(wǎng)絡(luò)的設(shè)備和可信方均包括一個或多個處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲器(rom)或閃存(flashram)。內(nèi)存是計算機可讀介質(zhì)的示例。
計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機存取存儲器(sram)、動態(tài)隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括非暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號和載波。
圖1示出根據(jù)本申請一個方面的一種系統(tǒng)升級的方法的流程示意圖;該方法包括步驟s11、步驟s12和步驟s13,其中,具體包括:
在需要對待升級的目標(biāo)系統(tǒng)進行升級時,為了保證對目標(biāo)系統(tǒng)中的系統(tǒng)軟件進行安全升級,避免出現(xiàn)目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境對系統(tǒng)軟件的升級造成局限性影響,故所述步驟s11在目標(biāo)系統(tǒng)中嵌入升級系統(tǒng)環(huán)境,其中,所述升級系統(tǒng)環(huán)境與所述目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境相互獨立,使得相互獨立的升級系統(tǒng)環(huán)境與自身系統(tǒng)環(huán)境中的升級互不影響,可以保證后續(xù)對目標(biāo)系統(tǒng)的系統(tǒng)軟件和非系統(tǒng)軟件的完整升級;接著所述步驟s12獲取所述目標(biāo)系統(tǒng)中的系統(tǒng)軟件和非系統(tǒng)軟件;最后所述步驟s13在所述升級系統(tǒng)環(huán)境中對所述系統(tǒng)軟件進行升級,若升級成功,則切換至所述自身系統(tǒng)環(huán)境對所述非系統(tǒng)軟件進行升級,實現(xiàn)了在升級系統(tǒng)環(huán)境中對目標(biāo)系統(tǒng)的系統(tǒng)軟件的升級,使得對目標(biāo)系統(tǒng)的系統(tǒng)軟件的升級脫離其自身系統(tǒng)環(huán)境,不再受其自身系統(tǒng)環(huán)境的影響,進而避免系統(tǒng)軟件的升級程序與其自身系統(tǒng)環(huán)境之間相互影響的局限性,在嵌入的升級系統(tǒng)環(huán)境中對系統(tǒng)軟件升級成功之后,切換至自身系統(tǒng)環(huán)境中對目標(biāo)系統(tǒng)的非系統(tǒng)軟件進行升級,實現(xiàn)對目標(biāo)系統(tǒng)的升級。
需要說明的是,所述目標(biāo)系統(tǒng)可以是包括但不限于linux系統(tǒng)、windows系統(tǒng)、xp系統(tǒng)、ios系統(tǒng)等。下面以linux系統(tǒng)為目標(biāo)系統(tǒng)為例,對本申請進行說明。
需要說明的是,所述目標(biāo)系統(tǒng)的系統(tǒng)軟件可以包括但不限于包括目標(biāo)系統(tǒng)內(nèi)核層軟件、目標(biāo)系統(tǒng)的文件系統(tǒng)及目錄結(jié)構(gòu)以及數(shù)據(jù)庫等;為了在所述步驟s13中的在目標(biāo)系統(tǒng)的升級系統(tǒng)環(huán)境中對系統(tǒng)軟件進行升級的安全性和盡可能地降低對系統(tǒng)軟件升級的風(fēng)險,采用對目標(biāo)系統(tǒng)進行先下向上的升級策略,即先在升級系統(tǒng)環(huán)境中對目標(biāo)系統(tǒng)的例如內(nèi)核層、文件系統(tǒng)及目錄結(jié)構(gòu)等系統(tǒng)軟件進行升級,同時為了降低在升級系統(tǒng)環(huán)境中對系統(tǒng)軟件的升級風(fēng)險,所述目標(biāo)系統(tǒng)的系統(tǒng)軟件需通過多輪測試一得到最小的底層系統(tǒng)軟件的軟件包集合,使得具有最小軟件包集合的系統(tǒng)軟件能夠順利地在升級系統(tǒng)環(huán)境中進行升級成功。所述目標(biāo)系統(tǒng)的非系統(tǒng)軟件可以包括但不限于應(yīng)用軟件、系統(tǒng)軟件與應(yīng)用軟件之間的接口軟件等,其中該應(yīng)用軟件可以是文字處理軟件(例如word、wps等)、信息管理軟件、輔助設(shè)計軟件(例如cad等)及實時控制軟件等。
進一步地,為了保證對目標(biāo)系統(tǒng)的完整升級和升級成功,所述步驟s13中的在所述升級系統(tǒng)環(huán)境中對所述系統(tǒng)軟件進行升級之前,還包括:判斷所述目標(biāo)系統(tǒng)中的根分區(qū)的空閑存儲空間是否滿足預(yù)設(shè)的系統(tǒng)升級需求空間,若滿足的話,則對所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫進行轉(zhuǎn)存。例如,若完成對目標(biāo)系統(tǒng)的完整升級需要的預(yù)設(shè)的系統(tǒng)升級需求空間為1.3gb,其中若所述目標(biāo)系統(tǒng)(例如linux系統(tǒng))的根分區(qū)的空閑存儲空間為1.8gb,可見所述目標(biāo)系統(tǒng)的根分區(qū)的空閑存儲空間滿足系統(tǒng)升級需求空間,又為了確保目標(biāo)系統(tǒng)中的具有重要性的某些數(shù)據(jù)的保留,避免在系統(tǒng)升級的過程中丟失,故在讀系統(tǒng)進行升級之前且在滿足系統(tǒng)升級需求空間是我,對目標(biāo)系統(tǒng)中的數(shù)據(jù)庫進行轉(zhuǎn)存,實現(xiàn)對目標(biāo)系統(tǒng)中的數(shù)據(jù)庫中需要保留的數(shù)據(jù)進行轉(zhuǎn)存,以便后續(xù)還原至該數(shù)據(jù)庫中。
進一步地,所述步驟s13之前的對所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫進行轉(zhuǎn)存,包括:基于預(yù)設(shè)的數(shù)據(jù)存儲列表,將所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)轉(zhuǎn)存至預(yù)設(shè)目標(biāo)路徑中。需要說明的是,所述預(yù)設(shè)的數(shù)據(jù)存儲列表可以為在進行開發(fā)升級工具的時候,預(yù)先根據(jù)目標(biāo)系統(tǒng)運行情況統(tǒng)計得到的需要進行管控和保留的文件及路徑列表,還可以為目標(biāo)系統(tǒng)正常運行時必不可少的文件和目錄的索引列表。根據(jù)所述預(yù)設(shè)的數(shù)據(jù)存儲列表,將所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)轉(zhuǎn)存至指定的預(yù)設(shè)目標(biāo)路徑中,進而實現(xiàn)對需要保留的文件和目錄進行提前預(yù)設(shè)保留,避免了在對目標(biāo)系統(tǒng)進行升級的過程中,對需要保留的所述數(shù)據(jù)存儲列表對應(yīng)的數(shù)據(jù)庫中的數(shù)據(jù)的丟失問題的發(fā)生。在此,數(shù)據(jù)轉(zhuǎn)存的表現(xiàn)形式可以是支持關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(例如mysql及sqlite等)中的數(shù)據(jù)庫的遷移,還可以是支持動態(tài)文件系統(tǒng)(例如zettabytefilesystem及zpool等)中的數(shù)據(jù)庫的遷移。
進一步地,所述步驟s13之前的基于預(yù)設(shè)的數(shù)據(jù)存儲列表,將所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)轉(zhuǎn)存至預(yù)設(shè)目標(biāo)路徑中,包括:
根據(jù)所述數(shù)據(jù)庫的類型,確定對應(yīng)的數(shù)據(jù)庫指令;
基于所述預(yù)設(shè)的數(shù)據(jù)存儲列表和數(shù)據(jù)庫指令,將所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)轉(zhuǎn)存至預(yù)設(shè)目標(biāo)路徑中。
需要說明的是,所述數(shù)據(jù)庫的類型可以是包括但不限于是網(wǎng)狀數(shù)據(jù)庫(networkdatabase)、關(guān)系數(shù)據(jù)庫(relationaldatabase)、樹狀數(shù)據(jù)庫(hierarchicaldatabase)、面向?qū)ο髷?shù)據(jù)庫(object-orienteddatabase)等,其中,所述關(guān)系數(shù)據(jù)庫可以為oracle、db2、sybase、mssqlserver、informax及mysql等。不同的數(shù)據(jù)庫類型,在對數(shù)據(jù)庫進行操作時對應(yīng)不同的數(shù)據(jù)庫指令。
本申請一實施例中,所述步驟s13之前,在判斷得到目標(biāo)系統(tǒng)的根分區(qū)的空閑存儲空間滿足預(yù)設(shè)的所述系統(tǒng)升級需求空間之后,根據(jù)該數(shù)據(jù)庫的類型,確定對應(yīng)的數(shù)據(jù)庫指令,根據(jù)對應(yīng)的數(shù)據(jù)庫指令對數(shù)據(jù)庫中的數(shù)據(jù)進行轉(zhuǎn)存,即根據(jù)數(shù)據(jù)庫指令,將預(yù)設(shè)的數(shù)據(jù)存儲列表對應(yīng)的在目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)轉(zhuǎn)存至指定的預(yù)設(shè)目標(biāo)路徑中。例如,若所述數(shù)據(jù)庫的類型為mysql數(shù)據(jù)庫,則確定對應(yīng)的數(shù)據(jù)庫指令為mysqldump指令,通過該mysqldump指令將數(shù)據(jù)存儲列表對應(yīng)在數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)導(dǎo)出并轉(zhuǎn)存至指定的所述預(yù)設(shè)目標(biāo)路徑中,實現(xiàn)了對目標(biāo)系統(tǒng)中的需要保留的文件和目錄的路徑的保留,還便于后續(xù)對數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)進行還原,避免了需要保留的數(shù)據(jù)存儲列表在數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)在目標(biāo)系統(tǒng)進行升級過程丟失,保證了數(shù)據(jù)的安全性。
由于目標(biāo)系統(tǒng)中的部署方式多種多樣,為提高目標(biāo)系統(tǒng)的工作性能,將目標(biāo)系統(tǒng)部署在空間極為有限的dom卡上,而且由于線上服務(wù)器對自身系統(tǒng)環(huán)境的要求苛刻,又必須保證該目標(biāo)系統(tǒng)的離線升級的能力,故在對目標(biāo)系統(tǒng)進行升級時,需根據(jù)目標(biāo)系統(tǒng)的根分區(qū)的空閑存儲空間進行判斷,以使得針對不同的根分區(qū)的空閑存儲空間,進行不同的空間操作處理,以確保目標(biāo)系統(tǒng)具有足夠的空間來進行升級。
本申請一實施例中,所述步驟s13之前的判斷所述目標(biāo)系統(tǒng)中的根分區(qū)的空閑存儲空間是否滿足預(yù)設(shè)的系統(tǒng)升級需求空間之后,還包括:若不滿足,則對所述根分區(qū)中存儲的數(shù)據(jù)進行轉(zhuǎn)存,直至所述根分區(qū)的空閑存儲空間滿足所述預(yù)設(shè)的系統(tǒng)升級需求空間。例如,若完成對目標(biāo)系統(tǒng)的完整升級需要的預(yù)設(shè)的系統(tǒng)升級需求空間為1.3gb,其中若所述目標(biāo)系統(tǒng)(例如linux系統(tǒng))的根分區(qū)的空閑存儲空間為1.1gb,可見所述目標(biāo)系統(tǒng)的根分區(qū)的空閑存儲空間不滿足系統(tǒng)升級需求空間,為了保證有足夠的空閑存儲空間來對目標(biāo)系統(tǒng)進行升級,故需要將根分區(qū)中存儲的數(shù)據(jù)進行轉(zhuǎn)存,以騰出根分區(qū)的空間,直至根分區(qū)的空閑存儲空間能夠滿足預(yù)設(shè)的所述系統(tǒng)升級需求空間,進而能夠確保目標(biāo)系統(tǒng)的根分區(qū)具有足夠的空閑存儲空間來進行系統(tǒng)升級。
進一步地,為了避免所述目標(biāo)系統(tǒng)的根分區(qū)的空閑存儲空間閾值(即,根分區(qū)中所有的數(shù)據(jù)都進行轉(zhuǎn)存或根分區(qū)中沒有存儲任何數(shù)據(jù))仍然不滿足對目標(biāo)系統(tǒng)進行升級需要的預(yù)設(shè)的系統(tǒng)升級需求空間,則所述步驟s13之前的對所述根分區(qū)中存儲的數(shù)據(jù)進行轉(zhuǎn)存之后,還包括:若所述根分區(qū)的空閑存儲空間閾值不滿足所述預(yù)設(shè)的系統(tǒng)升級需求空間,則提示用戶所述根分區(qū)不滿足所述預(yù)設(shè)的系統(tǒng)升級需求空間。例如,若完成對目標(biāo)系統(tǒng)的完整升級需要的預(yù)設(shè)的系統(tǒng)升級需求空間為1.3gb,其中若所述目標(biāo)系統(tǒng)(例如linux系統(tǒng))的根分區(qū)的空閑存儲空間閾值(即,根分區(qū)中所有的數(shù)據(jù)都進行轉(zhuǎn)存或根分區(qū)中沒有存儲任何數(shù)據(jù))為1.2gb,則需要提示用戶該目標(biāo)系統(tǒng)的根分區(qū)的空閑存儲空間閾值1.2gb不滿足該預(yù)設(shè)的系統(tǒng)升級需求空間為1.3gb,以使用戶通過人為處理的方式解決對該目標(biāo)系統(tǒng)進行升級所需要的預(yù)設(shè)的系統(tǒng)升級需求空間不足的問題。進一步地,若對所述根分區(qū)中存儲的數(shù)據(jù)進行轉(zhuǎn)存之后,所述根分區(qū)的空閑存儲空間閾值不滿足所述預(yù)設(shè)的系統(tǒng)升級需求空間,則需要將轉(zhuǎn)存的根分區(qū)中存儲的數(shù)據(jù)還原至根分區(qū)中,避免根分區(qū)中存儲的數(shù)據(jù)的丟失,之后再提示用戶根分區(qū)的空閑存儲空間閾值不滿足預(yù)設(shè)的系統(tǒng)升級需求空間。
進一步地,所述步驟s13在所述升級系統(tǒng)環(huán)境中對所述系統(tǒng)軟件進行升級,若升級成功,則切換至所述自身系統(tǒng)環(huán)境對所述非系統(tǒng)軟件進行升級之后,還包括:刪除嵌入至所述目標(biāo)系統(tǒng)中的所述升級系統(tǒng)環(huán)境。為了降低對目標(biāo)系統(tǒng)進行升級的風(fēng)險度,故在目標(biāo)系統(tǒng)中嵌入升級系統(tǒng)環(huán)境,用于運行對目標(biāo)系統(tǒng)進行升級的程序、并對目標(biāo)系統(tǒng)中的系統(tǒng)軟件進行升級,以避免用于升級的程序與系統(tǒng)軟件之間的相互影響,在對目標(biāo)系統(tǒng)進行升級成功之后,需嵌入至該目標(biāo)系統(tǒng)中的所述升級系統(tǒng)環(huán)境刪除,以節(jié)省目標(biāo)系統(tǒng)的存儲資源。
進一步地,所述步驟s13在所述升級系統(tǒng)環(huán)境中對所述系統(tǒng)軟件進行升級,若升級成功,則切換至所述自身系統(tǒng)環(huán)境對所述非系統(tǒng)軟件進行升級之后,還包括:基于所述預(yù)設(shè)的數(shù)據(jù)存儲列表和轉(zhuǎn)存至所述預(yù)設(shè)目標(biāo)路徑下的所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù),對所述數(shù)據(jù)庫進行恢復(fù)。在此,若所述數(shù)據(jù)存儲列表為目標(biāo)系統(tǒng)正常運行時必不可少的文件和目錄的索引列表,例如,對動態(tài)文件系統(tǒng)的恢復(fù),尤其是對動態(tài)文件系統(tǒng)對應(yīng)的存儲池的恢復(fù),由于動態(tài)文件系統(tǒng)在進行升級的過程中,會導(dǎo)致動態(tài)文件系統(tǒng)對應(yīng)的存儲池中所建立的文件系統(tǒng)失效,故需要根據(jù)動態(tài)文件系統(tǒng)相關(guān)指令,將數(shù)據(jù)存儲列表對應(yīng)轉(zhuǎn)存至預(yù)設(shè)目標(biāo)路徑中的數(shù)據(jù)恢復(fù)至動態(tài)文件系統(tǒng)對應(yīng)的存儲池中,進而實現(xiàn)對目標(biāo)系統(tǒng)中的需要保留的文件和目錄的路徑的保留,既能基于數(shù)據(jù)存儲列表和對應(yīng)轉(zhuǎn)存的預(yù)設(shè)目標(biāo)路徑快速地找到轉(zhuǎn)存的數(shù)據(jù),還能夠精確快速地將轉(zhuǎn)存的數(shù)據(jù)恢復(fù)至目標(biāo)系統(tǒng)中。
進一步地,所述步驟s13在所述升級系統(tǒng)環(huán)境中對所述系統(tǒng)軟件進行升級,若升級成功,則切換至所述自身系統(tǒng)環(huán)境對所述非系統(tǒng)軟件進行升級之后,還包括:基于所述預(yù)設(shè)的數(shù)據(jù)存儲列表、數(shù)據(jù)庫指令及轉(zhuǎn)存至所述預(yù)設(shè)目標(biāo)路徑下的所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù),對所述數(shù)據(jù)庫進行恢復(fù)。在此,若需要對目標(biāo)系統(tǒng)中的mysql數(shù)據(jù)庫進行恢復(fù),則在對該數(shù)據(jù)庫中的數(shù)據(jù)進行恢復(fù)時,需要調(diào)用該mysql數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)庫指令,基于該預(yù)設(shè)的數(shù)據(jù)存儲列表,將在進行系統(tǒng)升級之前轉(zhuǎn)存至預(yù)設(shè)目標(biāo)路徑下的所述目標(biāo)系統(tǒng)中的該mysql數(shù)據(jù)庫對應(yīng)的數(shù)據(jù),導(dǎo)入并至所述mysql數(shù)據(jù)庫,以實現(xiàn)將目標(biāo)系統(tǒng)的該mysql數(shù)據(jù)庫中的需要保留的數(shù)據(jù)進行恢復(fù)。
進一步地,所述步驟s13在所述升級系統(tǒng)環(huán)境中對所述系統(tǒng)軟件進行升級,若升級成功,則切換至所述自身系統(tǒng)環(huán)境對所述非系統(tǒng)軟件進行升級之后,還包括:基于所述數(shù)據(jù)存儲列表,對所述目標(biāo)系統(tǒng)的所述自身系統(tǒng)環(huán)境進行數(shù)據(jù)清理。為了清除在升級過程中產(chǎn)生的文件異常殘留,基于需要保留的所述數(shù)據(jù)存儲列表對應(yīng)的文件和目錄的路徑,將所述目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境中的,除所述數(shù)據(jù)存儲列表對應(yīng)的文件和目錄的路徑之外的所有數(shù)據(jù)清除,進而將升級過程中對目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境中的不受控的文件的異常殘留進行清理,確保目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境的可控性和安全性,并節(jié)省目標(biāo)系統(tǒng)的存儲資源。
綜上所述,本申請?zhí)峁┑囊环N系統(tǒng)升級方法中,為了對目標(biāo)系統(tǒng)進行升級時,考慮到目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境對自身的目標(biāo)系統(tǒng)的底層軟件及文件系統(tǒng)進行升級的過程中,受自身系統(tǒng)環(huán)境的影響,甚至可能會導(dǎo)致宕機,故對所述目標(biāo)系統(tǒng)進行升級之前,在所述目標(biāo)系統(tǒng)中嵌入一升級系統(tǒng)環(huán)境,以使升級系統(tǒng)所需的升級程序能夠在所述升級系統(tǒng)環(huán)境中進行運行,將升級系統(tǒng)環(huán)境與目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境分離開,使得整個升級過程的升級程序在脫離自身系統(tǒng)環(huán)境下進行運行,進而不再受自身系統(tǒng)環(huán)境的影響,可以完全擺脫升級程序運行所在的升級系統(tǒng)環(huán)境與自身系統(tǒng)環(huán)境之間相互影響的局限性,降低了對目標(biāo)系統(tǒng)進行升級的過程中的風(fēng)險。
接著上述實施例,為了保證對目標(biāo)系統(tǒng)進行升級的完整性,在進行升級之前,還需判斷目標(biāo)系統(tǒng)的根分區(qū)的空閑存儲空間是否滿足預(yù)設(shè)的系統(tǒng)升級需求空間,若滿足的話,對需要系統(tǒng)需要進行保留的數(shù)據(jù)庫進行轉(zhuǎn)存,將預(yù)設(shè)的數(shù)據(jù)存儲列表對應(yīng)的在目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)轉(zhuǎn)存至指定的預(yù)設(shè)目標(biāo)路徑中,若不滿足的話,則將根分區(qū)中存儲的數(shù)據(jù)進行轉(zhuǎn)存,直至根分區(qū)的空閑存儲空間滿足升級需要的預(yù)設(shè)的系統(tǒng)升級需求空間,若將根分區(qū)的中的數(shù)據(jù)轉(zhuǎn)存完畢,仍然不滿足預(yù)設(shè)的系統(tǒng)升級需求空間,則將轉(zhuǎn)存的所有數(shù)據(jù)還原至根分區(qū)中,并提示用戶根分區(qū)不能滿足系統(tǒng)升級需求的預(yù)設(shè)的系統(tǒng)升級需求空間。
接著本申請的上述實施例,將目標(biāo)系統(tǒng)中的對應(yīng)數(shù)據(jù)存儲列表對應(yīng)的數(shù)據(jù)庫中的數(shù)據(jù)進行轉(zhuǎn)存之后,在所述升級系統(tǒng)環(huán)境中運行升級程序,對目標(biāo)系統(tǒng)中的系統(tǒng)軟件(例如內(nèi)核層、文件系統(tǒng)及結(jié)構(gòu)文件中的核心軟件等)進行升級,在對系統(tǒng)軟件進行升級完成后,通過修改引導(dǎo)管理器(grub配置)后,重啟所述目標(biāo)系統(tǒng),所述grub配置將升級過程從所述升級系統(tǒng)環(huán)境中切換至自身系統(tǒng)環(huán)境中,以實現(xiàn)對升級系統(tǒng)環(huán)境與自身系統(tǒng)環(huán)境的切換,并在所述自身系統(tǒng)環(huán)境中對非系統(tǒng)軟件(例如應(yīng)用軟件包等)進行升級,并將數(shù)據(jù)存儲列表對應(yīng)的轉(zhuǎn)存至指定的預(yù)設(shè)目標(biāo)路徑下的數(shù)據(jù)還原至對應(yīng)的數(shù)據(jù)庫中,并將除數(shù)據(jù)存儲列表之外的所有數(shù)據(jù)進行清理刪除,同時將嵌入的所述升級系統(tǒng)環(huán)境刪除,以節(jié)省目標(biāo)系統(tǒng)的存儲資源;通過采用嵌入的升級系統(tǒng)環(huán)境與自身系統(tǒng)環(huán)境分離式的環(huán)境分別對目標(biāo)系統(tǒng)的系統(tǒng)軟件和非系統(tǒng)軟件進行升級,不僅避免了傳統(tǒng)系統(tǒng)升級過程中存在的局限性,還保證了對目標(biāo)系統(tǒng)進行完整升級,并確保了需要保留的數(shù)據(jù)的完整性,加大的降低了對目標(biāo)系統(tǒng)進行升級存在的風(fēng)險。
圖2示出根據(jù)本申請一個方面的一種系統(tǒng)升級的設(shè)備的結(jié)構(gòu)示意圖;該設(shè)備包括嵌入裝置11、獲取裝置12和升級裝置13,其中,具體包括:
在需要對待升級的目標(biāo)系統(tǒng)進行升級時,為了保證對目標(biāo)系統(tǒng)中的系統(tǒng)軟件進行安全升級,避免出現(xiàn)目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境對系統(tǒng)軟件的升級造成局限性影響,故所述嵌入裝置11用于:在目標(biāo)系統(tǒng)中嵌入升級系統(tǒng)環(huán)境,其中,所述升級系統(tǒng)環(huán)境與所述目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境相互獨立,使得相互獨立的升級系統(tǒng)環(huán)境與自身系統(tǒng)環(huán)境中的升級互不影響,可以保證后續(xù)對目標(biāo)系統(tǒng)的系統(tǒng)軟件和非系統(tǒng)軟件的完整升級;接著所述獲取裝置12用于:獲取所述目標(biāo)系統(tǒng)中的系統(tǒng)軟件和非系統(tǒng)軟件;最后所述升級裝置13用于:在所述升級系統(tǒng)環(huán)境中對所述系統(tǒng)軟件進行升級,若升級成功,則切換至所述自身系統(tǒng)環(huán)境對所述非系統(tǒng)軟件進行升級,實現(xiàn)了在升級系統(tǒng)環(huán)境中對目標(biāo)系統(tǒng)的系統(tǒng)軟件的升級,使得對目標(biāo)系統(tǒng)的系統(tǒng)軟件的升級脫離其自身系統(tǒng)環(huán)境,不再受其自身系統(tǒng)環(huán)境的影響,進而避免系統(tǒng)軟件的升級程序與其自身系統(tǒng)環(huán)境之間相互影響的局限性,在嵌入的升級系統(tǒng)環(huán)境中對系統(tǒng)軟件升級成功之后,切換至自身系統(tǒng)環(huán)境中對目標(biāo)系統(tǒng)的非系統(tǒng)軟件進行升級,實現(xiàn)對目標(biāo)系統(tǒng)的升級。
需要說明的是,所述目標(biāo)系統(tǒng)可以是包括但不限于linux系統(tǒng)、windows系統(tǒng)、xp系統(tǒng)、ios系統(tǒng)等。下面以linux系統(tǒng)為目標(biāo)系統(tǒng)為例,對本申請進行說明。
需要說明的是,所述目標(biāo)系統(tǒng)的系統(tǒng)軟件可以包括但不限于包括目標(biāo)系統(tǒng)內(nèi)核層軟件、目標(biāo)系統(tǒng)的文件系統(tǒng)及目錄結(jié)構(gòu)以及數(shù)據(jù)庫等;為了在所述升級裝置13中的在目標(biāo)系統(tǒng)的升級系統(tǒng)環(huán)境中對系統(tǒng)軟件進行升級的安全性和盡可能地降低對系統(tǒng)軟件升級的風(fēng)險,采用對目標(biāo)系統(tǒng)進行先下向上的升級策略,即先在升級系統(tǒng)環(huán)境中對目標(biāo)系統(tǒng)的例如內(nèi)核層、文件系統(tǒng)及目錄結(jié)構(gòu)等系統(tǒng)軟件進行升級,同時為了降低在升級系統(tǒng)環(huán)境中對系統(tǒng)軟件的升級風(fēng)險,所述目標(biāo)系統(tǒng)的系統(tǒng)軟件需通過多輪測試一得到最小的底層系統(tǒng)軟件的軟件包集合,使得具有最小軟件包集合的系統(tǒng)軟件能夠順利地在升級系統(tǒng)環(huán)境中進行升級成功。所述目標(biāo)系統(tǒng)的非系統(tǒng)軟件可以包括但不限于應(yīng)用軟件、系統(tǒng)軟件與應(yīng)用軟件之間的接口軟件等,其中該應(yīng)用軟件可以是文字處理軟件(例如word、wps等)、信息管理軟件、輔助設(shè)計軟件(例如cad等)及實時控制軟件等。
進一步地,為了保證對目標(biāo)系統(tǒng)的完整升級和升級成功,所述升級裝置13還用于:判斷所述目標(biāo)系統(tǒng)中的根分區(qū)的空閑存儲空間是否滿足預(yù)設(shè)的系統(tǒng)升級需求空間,若滿足的話,則對所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫進行轉(zhuǎn)存。例如,若完成對目標(biāo)系統(tǒng)的完整升級需要的預(yù)設(shè)的系統(tǒng)升級需求空間為1.3gb,其中若所述目標(biāo)系統(tǒng)(例如linux系統(tǒng))的根分區(qū)的空閑存儲空間為1.8gb,可見所述目標(biāo)系統(tǒng)的根分區(qū)的空閑存儲空間滿足系統(tǒng)升級需求空間,又為了確保目標(biāo)系統(tǒng)中的具有重要性的某些數(shù)據(jù)的保留,避免在系統(tǒng)升級的過程中丟失,故在讀系統(tǒng)進行升級之前且在滿足系統(tǒng)升級需求空間是我,對目標(biāo)系統(tǒng)中的數(shù)據(jù)庫進行轉(zhuǎn)存,實現(xiàn)對目標(biāo)系統(tǒng)中的數(shù)據(jù)庫中需要保留的數(shù)據(jù)進行轉(zhuǎn)存,以便后續(xù)還原至該數(shù)據(jù)庫中。
進一步地,所述升級裝置13還用于:基于預(yù)設(shè)的數(shù)據(jù)存儲列表,將所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)轉(zhuǎn)存至預(yù)設(shè)目標(biāo)路徑中。需要說明的是,所述預(yù)設(shè)的數(shù)據(jù)存儲列表可以為在進行開發(fā)升級工具的時候,預(yù)先根據(jù)目標(biāo)系統(tǒng)運行情況統(tǒng)計得到的需要進行管控和保留的文件及路徑列表,還可以為目標(biāo)系統(tǒng)正常運行時必不可少的文件和目錄的索引列表。根據(jù)所述預(yù)設(shè)的數(shù)據(jù)存儲列表,將所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)轉(zhuǎn)存至指定的預(yù)設(shè)目標(biāo)路徑中,進而實現(xiàn)對需要保留的文件和目錄進行提前預(yù)設(shè)保留,避免了在對目標(biāo)系統(tǒng)進行升級的過程中,對需要保留的所述數(shù)據(jù)存儲列表對應(yīng)的數(shù)據(jù)庫中的數(shù)據(jù)的丟失問題的發(fā)生。在此,數(shù)據(jù)轉(zhuǎn)存的表現(xiàn)形式可以是支持關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(例如mysql及sqlite等)中的數(shù)據(jù)庫的遷移,還可以是支持動態(tài)文件系統(tǒng)(例如zettabytefilesystem及zpool等)中的數(shù)據(jù)庫的遷移。
進一步地,所述升級裝置13還用于:
根據(jù)所述數(shù)據(jù)庫的類型,確定對應(yīng)的數(shù)據(jù)庫指令;
基于所述預(yù)設(shè)的數(shù)據(jù)存儲列表和數(shù)據(jù)庫指令,將所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)轉(zhuǎn)存至預(yù)設(shè)目標(biāo)路徑中。
需要說明的是,所述數(shù)據(jù)庫的類型可以是包括但不限于是網(wǎng)狀數(shù)據(jù)庫(networkdatabase)、關(guān)系數(shù)據(jù)庫(relationaldatabase)、樹狀數(shù)據(jù)庫(hierarchicaldatabase)、面向?qū)ο髷?shù)據(jù)庫(object-orienteddatabase)等,其中,所述關(guān)系數(shù)據(jù)庫可以為oracle、db2、sybase、mssqlserver、informax及mysql等。不同的數(shù)據(jù)庫類型,在對數(shù)據(jù)庫進行操作時對應(yīng)不同的數(shù)據(jù)庫指令。
本申請一實施例中,所述升級裝置13在判斷得到目標(biāo)系統(tǒng)的根分區(qū)的空閑存儲空間滿足預(yù)設(shè)的所述系統(tǒng)升級需求空間之后,還用于根據(jù)該數(shù)據(jù)庫的類型,確定對應(yīng)的數(shù)據(jù)庫指令,根據(jù)對應(yīng)的數(shù)據(jù)庫指令對數(shù)據(jù)庫中的數(shù)據(jù)進行轉(zhuǎn)存,即根據(jù)數(shù)據(jù)庫指令,將預(yù)設(shè)的數(shù)據(jù)存儲列表對應(yīng)的在目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)轉(zhuǎn)存至指定的預(yù)設(shè)目標(biāo)路徑中。例如,若所述數(shù)據(jù)庫的類型為mysql數(shù)據(jù)庫,則確定對應(yīng)的數(shù)據(jù)庫指令為mysqldump指令,通過該mysqldump指令將數(shù)據(jù)存儲列表對應(yīng)在數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)導(dǎo)出并轉(zhuǎn)存至指定的所述預(yù)設(shè)目標(biāo)路徑中,實現(xiàn)了對目標(biāo)系統(tǒng)中的需要保留的文件和目錄的路徑的保留,還便于后續(xù)對數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)進行還原,避免了需要保留的數(shù)據(jù)存儲列表在數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)在目標(biāo)系統(tǒng)進行升級過程丟失,保證了數(shù)據(jù)的安全性。
由于目標(biāo)系統(tǒng)中的部署方式多種多樣,為提高目標(biāo)系統(tǒng)的工作性能,將目標(biāo)系統(tǒng)部署在空間極為有限的dom卡上,而且由于線上服務(wù)器對自身系統(tǒng)環(huán)境的要求苛刻,又必須保證該目標(biāo)系統(tǒng)的離線升級的能力,故在對目標(biāo)系統(tǒng)進行升級時,需根據(jù)目標(biāo)系統(tǒng)的根分區(qū)的空閑存儲空間進行判斷,以使得針對不同的根分區(qū)的空閑存儲空間,進行不同的空間操作處理,以確保目標(biāo)系統(tǒng)具有足夠的空間來進行升級。
本申請一實施例中,所述升級裝置13還用于:若不滿足,則對所述根分區(qū)中存儲的數(shù)據(jù)進行轉(zhuǎn)存,直至所述根分區(qū)的空閑存儲空間滿足所述預(yù)設(shè)的系統(tǒng)升級需求空間。例如,若完成對目標(biāo)系統(tǒng)的完整升級需要的預(yù)設(shè)的系統(tǒng)升級需求空間為1.3gb,其中若所述目標(biāo)系統(tǒng)(例如linux系統(tǒng))的根分區(qū)的空閑存儲空間為1.1gb,可見所述目標(biāo)系統(tǒng)的根分區(qū)的空閑存儲空間不滿足系統(tǒng)升級需求空間,為了保證有足夠的空閑存儲空間來對目標(biāo)系統(tǒng)進行升級,故需要將根分區(qū)中存儲的數(shù)據(jù)進行轉(zhuǎn)存,以騰出根分區(qū)的空間,直至根分區(qū)的空閑存儲空間能夠滿足預(yù)設(shè)的所述系統(tǒng)升級需求空間,進而能夠確保目標(biāo)系統(tǒng)的根分區(qū)具有足夠的空閑存儲空間來進行系統(tǒng)升級。
進一步地,為了避免所述目標(biāo)系統(tǒng)的根分區(qū)的空閑存儲空間閾值(即,根分區(qū)中所有的數(shù)據(jù)都進行轉(zhuǎn)存或根分區(qū)中沒有存儲任何數(shù)據(jù))仍然不滿足對目標(biāo)系統(tǒng)進行升級需要的預(yù)設(shè)的系統(tǒng)升級需求空間,則所述升級裝置13還用于:若所述根分區(qū)的空閑存儲空間閾值不滿足所述預(yù)設(shè)的系統(tǒng)升級需求空間,則提示用戶所述根分區(qū)不滿足所述預(yù)設(shè)的系統(tǒng)升級需求空間。例如,若完成對目標(biāo)系統(tǒng)的完整升級需要的預(yù)設(shè)的系統(tǒng)升級需求空間為1.3gb,其中若所述目標(biāo)系統(tǒng)(例如linux系統(tǒng))的根分區(qū)的空閑存儲空間閾值(即,根分區(qū)中所有的數(shù)據(jù)都進行轉(zhuǎn)存或根分區(qū)中沒有存儲任何數(shù)據(jù))為1.2gb,則需要提示用戶該目標(biāo)系統(tǒng)的根分區(qū)的空閑存儲空間閾值1.2gb不滿足該預(yù)設(shè)的系統(tǒng)升級需求空間為1.3gb,以使用戶通過人為處理的方式解決對該目標(biāo)系統(tǒng)進行升級所需要的預(yù)設(shè)的系統(tǒng)升級需求空間不足的問題。進一步地,若對所述根分區(qū)中存儲的數(shù)據(jù)進行轉(zhuǎn)存之后,所述根分區(qū)的空閑存儲空間閾值不滿足所述預(yù)設(shè)的系統(tǒng)升級需求空間,則需要將轉(zhuǎn)存的根分區(qū)中存儲的數(shù)據(jù)還原至根分區(qū)中,避免根分區(qū)中存儲的數(shù)據(jù)的丟失,之后再提示用戶根分區(qū)的空閑存儲空間閾值不滿足預(yù)設(shè)的系統(tǒng)升級需求空間。
進一步地,所述升級裝置13還用于:刪除嵌入至所述目標(biāo)系統(tǒng)中的所述升級系統(tǒng)環(huán)境。為了降低對目標(biāo)系統(tǒng)進行升級的風(fēng)險度,故在目標(biāo)系統(tǒng)中嵌入升級系統(tǒng)環(huán)境,用于運行對目標(biāo)系統(tǒng)進行升級的程序、并對目標(biāo)系統(tǒng)中的系統(tǒng)軟件進行升級,以避免用于升級的程序與系統(tǒng)軟件之間的相互影響,在對目標(biāo)系統(tǒng)進行升級成功之后,需嵌入至該目標(biāo)系統(tǒng)中的所述升級系統(tǒng)環(huán)境刪除,以節(jié)省目標(biāo)系統(tǒng)的存儲資源。
進一步地,所述升級裝置13還用于:基于所述預(yù)設(shè)的數(shù)據(jù)存儲列表和轉(zhuǎn)存至所述預(yù)設(shè)目標(biāo)路徑下的所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù),對所述數(shù)據(jù)庫進行恢復(fù)。在此,若所述數(shù)據(jù)存儲列表為目標(biāo)系統(tǒng)正常運行時必不可少的文件和目錄的索引列表,例如,對動態(tài)文件系統(tǒng)的恢復(fù),尤其是對動態(tài)文件系統(tǒng)對應(yīng)的存儲池的恢復(fù),由于動態(tài)文件系統(tǒng)在進行升級的過程中,會導(dǎo)致動態(tài)文件系統(tǒng)對應(yīng)的存儲池中所建立的文件系統(tǒng)失效,故需要根據(jù)動態(tài)文件系統(tǒng)相關(guān)指令,將數(shù)據(jù)存儲列表對應(yīng)轉(zhuǎn)存至預(yù)設(shè)目標(biāo)路徑中的數(shù)據(jù)恢復(fù)至動態(tài)文件系統(tǒng)對應(yīng)的存儲池中,進而實現(xiàn)對目標(biāo)系統(tǒng)中的需要保留的文件和目錄的路徑的保留,既能基于數(shù)據(jù)存儲列表和對應(yīng)轉(zhuǎn)存的預(yù)設(shè)目標(biāo)路徑快速地找到轉(zhuǎn)存的數(shù)據(jù),還能夠精確快速地將轉(zhuǎn)存的數(shù)據(jù)恢復(fù)至目標(biāo)系統(tǒng)中。
進一步地,所述升級裝置13還用于:基于所述預(yù)設(shè)的數(shù)據(jù)存儲列表、數(shù)據(jù)庫指令及轉(zhuǎn)存至所述預(yù)設(shè)目標(biāo)路徑下的所述目標(biāo)系統(tǒng)中的數(shù)據(jù)庫對應(yīng)的數(shù)據(jù),對所述數(shù)據(jù)庫進行恢復(fù)。在此,若需要對目標(biāo)系統(tǒng)中的mysql數(shù)據(jù)庫進行恢復(fù),則在對該數(shù)據(jù)庫中的數(shù)據(jù)進行恢復(fù)時,需要調(diào)用該mysql數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)庫指令,基于該預(yù)設(shè)的數(shù)據(jù)存儲列表,將在進行系統(tǒng)升級之前轉(zhuǎn)存至預(yù)設(shè)目標(biāo)路徑下的所述目標(biāo)系統(tǒng)中的該mysql數(shù)據(jù)庫對應(yīng)的數(shù)據(jù),導(dǎo)入并至所述mysql數(shù)據(jù)庫,以實現(xiàn)將目標(biāo)系統(tǒng)的該mysql數(shù)據(jù)庫中的需要保留的數(shù)據(jù)進行恢復(fù)。
進一步地,所述升級裝置13還用于:基于所述數(shù)據(jù)存儲列表,對所述目標(biāo)系統(tǒng)的所述自身系統(tǒng)環(huán)境進行數(shù)據(jù)清理。為了清除在升級過程中產(chǎn)生的文件異常殘留,基于需要保留的所述數(shù)據(jù)存儲列表對應(yīng)的文件和目錄的路徑,將所述目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境中的,除所述數(shù)據(jù)存儲列表對應(yīng)的文件和目錄的路徑之外的所有數(shù)據(jù)清除,進而將升級過程中對目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境中的不受控的文件的異常殘留進行清理,確保目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境的可控性和安全性,并節(jié)省目標(biāo)系統(tǒng)的存儲資源。
綜上所述,本申請通過在目標(biāo)系統(tǒng)中嵌入升級系統(tǒng)環(huán)境,其中,所述升級系統(tǒng)環(huán)境與所述目標(biāo)系統(tǒng)的自身系統(tǒng)環(huán)境相互獨立;獲取所述目標(biāo)系統(tǒng)中的系統(tǒng)軟件和非系統(tǒng)軟件;在所述升級系統(tǒng)環(huán)境中對所述系統(tǒng)軟件進行升級,若升級成功,則切換至所述自身系統(tǒng)環(huán)境對所述非系統(tǒng)軟件進行升級,實現(xiàn)了在升級系統(tǒng)環(huán)境中對目標(biāo)系統(tǒng)的系統(tǒng)軟件的升級,使得對目標(biāo)系統(tǒng)的系統(tǒng)軟件的升級脫離其自身系統(tǒng)環(huán)境,不再受其自身系統(tǒng)環(huán)境的影響,進而避免系統(tǒng)軟件的升級程序與其自身系統(tǒng)環(huán)境之間相互影響的局限性,在嵌入的升級系統(tǒng)環(huán)境中對系統(tǒng)軟件升級成功之后,切換至自身系統(tǒng)環(huán)境中對目標(biāo)系統(tǒng)的非系統(tǒng)軟件進行升級,實現(xiàn)對目標(biāo)系統(tǒng)的升級。
需要注意的是,本申請可在軟件和/或軟件與硬件的組合體中被實施,例如,可采用專用集成電路(asic)、通用目的計算機或任何其他類似硬件設(shè)備來實現(xiàn)。在一個實施例中,本申請的軟件程序可以通過處理器執(zhí)行以實現(xiàn)上文所述步驟或功能。同樣地,本申請的軟件程序(包括相關(guān)的數(shù)據(jù)結(jié)構(gòu))可以被存儲到計算機可讀記錄介質(zhì)中,例如,ram存儲器,磁或光驅(qū)動器或軟磁盤及類似設(shè)備。另外,本申請的一些步驟或功能可采用硬件來實現(xiàn),例如,作為與處理器配合從而執(zhí)行各個步驟或功能的電路。
另外,本申請的一部分可被應(yīng)用為計算機程序產(chǎn)品,例如計算機程序指令,當(dāng)其被計算機執(zhí)行時,通過該計算機的操作,可以調(diào)用或提供根據(jù)本申請的方法和/或技術(shù)方案。而調(diào)用本申請的方法的程序指令,可能被存儲在固定的或可移動的記錄介質(zhì)中,和/或通過廣播或其他信號承載媒體中的數(shù)據(jù)流而被傳輸,和/或被存儲在根據(jù)所述程序指令運行的計算機設(shè)備的工作存儲器中。在此,根據(jù)本申請的一個實施例包括一個裝置,該裝置包括用于存儲計算機程序指令的存儲器和用于執(zhí)行程序指令的處理器,其中,當(dāng)該計算機程序指令被該處理器執(zhí)行時,觸發(fā)該裝置運行基于前述根據(jù)本申請的多個實施例的方法和/或技術(shù)方案。
對于本領(lǐng)域技術(shù)人員而言,顯然本申請不限于上述示范性實施例的細節(jié),而且在不背離本申請的精神或基本特征的情況下,能夠以其他的具體形式實現(xiàn)本申請。因此,無論從哪一點來看,均應(yīng)將實施例看作是示范性的,而且是非限制性的,本申請的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本申請內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。裝置權(quán)利要求中陳述的多個單元或裝置也可以由一個單元或裝置通過軟件或者硬件來實現(xiàn)。第一,第二等詞語用來表示名稱,而并不表示任何特定的順序。