專利名稱:一種Linux系統(tǒng)備份和修復方法
技術領域:
本發(fā)明涉及Linux系統(tǒng)安全領域,尤指一種Linux系統(tǒng)備份和修復方法。
技術背景
網(wǎng)絡病毒、自然災害或用戶的不正確操作都有可能引起程序異常、數(shù)據(jù)丟失,甚至系統(tǒng)無法啟動。關鍵數(shù)據(jù)的丟失很大程度上會產(chǎn)生嚴重影響,有時會造成無法挽回的損失。 系統(tǒng)備份修復可以說是系統(tǒng)可用性的最后一道防線,其目的在于系統(tǒng)崩潰時能夠快速的修復系統(tǒng)和用戶數(shù)據(jù)。
目前,Linux系統(tǒng)常見的備份修復方案有兩種一種方案是將用戶運行的系統(tǒng)備份為一個壓縮文件,當系統(tǒng)無法啟動時,借助于BIOS 引導的修復程序解壓縮備份文件重新安裝系統(tǒng);該方案耗時長且用戶系統(tǒng)在備份文件以后新增的系統(tǒng)文件和數(shù)據(jù)將丟失。此外,系統(tǒng)運行時,如果利用解壓縮文件方式修復系統(tǒng),正在運行進程的系統(tǒng)文件會被覆蓋,這將導致整個系統(tǒng)崩潰。
另一種方案是基于rsync命令實現(xiàn)遠程備份修復;該方案的系統(tǒng)備份修復需要遠程服務器,備份修復時間依賴于連接本機和服務器的網(wǎng)絡狀態(tài),這種修復方式需要除客戶機外,需要新增一臺服務器用于備份功能。
因此,現(xiàn)有的壓縮備份修復方法會丟失在備份文件以后新增的系統(tǒng)文件且系統(tǒng)運行時無法實現(xiàn)修復,而基于rsync命令實現(xiàn)遠程備份修復方法需要額外配置服務器,均存在不足,本發(fā)明人認為需要提供一種方案,可以實現(xiàn)不依賴于服務器的而對運行的目標系統(tǒng)快速備份和修復,為用戶提供“安全可控”的Linux系統(tǒng)。發(fā)明內容
為了實現(xiàn)上述目的,本發(fā)明提供一種Linux系統(tǒng)備份方法,該方法是基于rsync命令,該命令采用滾動弱校驗和強校驗,首先計算出當前系統(tǒng)文件與備份文件的不同之處,在系統(tǒng)前次利用備份方法進行備份之后再次進行備份時,只需將當前系統(tǒng)在前次備份之后用戶新增或修改的文件增加到前次備份文件中。
所述的備份方法為系統(tǒng)克隆,即將系統(tǒng)中的文件利用rsync命令完全COPY到磁盤其它分區(qū)或移動存儲設備。
上述方法的實現(xiàn)步驟如下(1)、將備份文件分成大小為N的不重合的若干數(shù)據(jù)塊(文件末尾部分分塊大小可能不足N),并由rsync命令對這些數(shù)據(jù)塊進行兩種不同方式的校驗32位的滾動弱校驗、128 位的強校驗;(2)、將上述每個數(shù)據(jù)塊的弱校驗、強校驗結果發(fā)送給當前系統(tǒng)文件;(3)、由rsync命令對當前系統(tǒng)文件中每個長度為N的數(shù)據(jù)塊進行弱校驗并與從備份文件收到的弱校驗值進行匹配,若相同再進行強校驗匹配,找出所有能相匹配的部分,則剩下的為不能匹配的部分,從而能快速找出當前系統(tǒng)文件與備份文件之間的區(qū)別之處;(4)、通過上述計算,將系統(tǒng)文件中存在而備份文件中沒有的文件,復制到備份文件,實現(xiàn)增量系統(tǒng)文件克隆。
這里需要說明的是,完全COPY是指復制過程保留系統(tǒng)中文件的權限屬性和目錄結構。
本發(fā)明還提供了一種Linux系統(tǒng)修復方法,該方法是基于rsync命令,該命令采用滾動弱校驗和強校驗,首先計算出系統(tǒng)文件與備份文件的不同之處,在目標系統(tǒng)出現(xiàn)故障需要進行修復時,只需對目標系統(tǒng)中相對于備份文件已丟失或修改的文件進行修復。
所述修復方法為利用鏡像文件進行修復。系統(tǒng)在正常情況下,用戶需用Linux系統(tǒng)的mksquashfs命令(即鏡像備份命令)將他所使用的系統(tǒng)備份為一個squashfs鏡像文件到磁盤的一個分區(qū)或移動存儲設備。在進行修復之前需要使用到這個鏡像文件。
上述方法的實現(xiàn)步驟如下(1)、將系統(tǒng)文件分成大小為N的不重合的若干數(shù)據(jù)塊(文件末尾部分分塊大小可能不足N),并由rsync命令對這些數(shù)據(jù)塊進行兩種不同方式的校驗32位的滾動弱校驗、128 位的強校驗;(2)、將上述每個數(shù)據(jù)塊的弱校驗、強校驗結果發(fā)送給備份文件;(3)、由rsync命令對備份文件中每個長度為N的數(shù)據(jù)塊進行弱校驗并與從系統(tǒng)文件收到的弱校驗值進行匹配,若相同再進行強校驗匹配,找出所有能相匹配的部分,則剩下的為不能匹配的部分,從而能快速找出系統(tǒng)文件與備份文件之間的區(qū)別之處;(4)、通過上述計算,將備份文件中存在而系統(tǒng)文件中丟失或修改的文件發(fā)送到系統(tǒng)文件,系統(tǒng)文件接收到文件從而完成系統(tǒng)的修復。
由于弱校驗的滾動特性可以快速地篩選出需要拷貝的數(shù)據(jù)塊,該算法的運算量主要集中在備份文件上。
借此,可以提高Linux的系統(tǒng)的備份和修復效率。使用本發(fā)明的鏡像修復方法對系統(tǒng)進行修復時,在備份文件之后用戶新增的系統(tǒng)文件和用戶數(shù)據(jù)依然能夠保存,僅對系統(tǒng)的丟失或修改的文件進行修復,不僅可以解決現(xiàn)有壓縮文件修復法無法保留新增文件的缺點,更能提高系統(tǒng)的修復效率。
圖1為本發(fā)明備份修復方法的流程圖。
圖2為本發(fā)明系統(tǒng)克隆的流程圖。
圖3為本發(fā)明鏡像文件備份流程圖。
圖4為本發(fā)明鏡像修復流程圖。
圖5為本發(fā)明系統(tǒng)恢復流程圖。
具體實施方式
為了更好地理解本發(fā)明,現(xiàn)參照說明書附圖作以下詳細地說明。
參照圖1,為本發(fā)明備份修復方法的基本流程圖。本發(fā)明主要包括兩個基本的方案,系統(tǒng)克隆和鏡像備份修復。以下分別進行說明。
本發(fā)明提供一種Linux系統(tǒng)備份方法,該方法是基于rsync命令,該命令采用滾動弱校驗和強校驗,可在很短時間內按照拷貝算法計算出當前系統(tǒng)文件與備份文件的不同之處,使系統(tǒng)在前次利用備份方法進行備份之后,再次進行備份時,只需要將上次備份之后用戶新增或修改的文件增加到原備份文件中。
備份方法包括目前常用的壓縮文件法,鏡像文件備份法以及本發(fā)明提供的系統(tǒng)克隆法?,F(xiàn)對系統(tǒng)克隆法進行說明圖2為根據(jù)本發(fā)明進行系統(tǒng)克隆時的流程圖。系統(tǒng)克隆是備份系統(tǒng)的一種方案。目標設備應該是本地磁盤其它分區(qū)或移動存儲設備,如果本地磁盤沒有其它分區(qū),需要用戶手動創(chuàng)建分區(qū)。系統(tǒng)克隆開始前,可以事先估算當前系統(tǒng)的大小,并與目標設備的空間比較, 自動判斷目標設備空間是否滿足系統(tǒng)克隆的需求。本發(fā)明的系統(tǒng)克隆用到拷貝算法,該拷貝算法是指用到rsync命令找出將用戶系統(tǒng)備份到磁盤分區(qū)或移動存儲設備的備份文件與需要備份的系統(tǒng)文件之間的差別,因此,前次利用備份方法進行備份之后,如果每次需要備份系統(tǒng)到該目標設備時,只需要復制上次備份后新增的系統(tǒng)文件或用戶數(shù)據(jù)至原備份文件中。
拷貝算法的目的是找出當前系統(tǒng)文件與備份文件的差別,本發(fā)明系統(tǒng)克隆方法具體實現(xiàn)步驟如下1)、將備份文件文件分成大小為N的不重合的若干數(shù)據(jù)塊(文件末尾部分分塊大小可能不足N),并由rsync命令對這些數(shù)據(jù)塊進行兩種不同方式的校驗32位的滾動弱校驗、 1 位的MD5強校驗;2)、將上述每個數(shù)據(jù)塊的弱校驗、強校驗結果發(fā)送給當前系統(tǒng)文件;3)、由rsync命令對當前系統(tǒng)文件中每個長度為N的數(shù)據(jù)塊進行弱校驗并與從系統(tǒng)文件收到的弱校驗值進行匹配,若相同再進行強校驗匹配,找出所有能相匹配的部分,則剩下的為不能匹配的部分,從而能快速找出當前系統(tǒng)文件與備份文件之間的區(qū)別之處;4)、通過上述計算,將系統(tǒng)文件中存在而備份文件中沒有的文件,復制到備份文件,實現(xiàn)增量文件克隆。
通過上述方法備份的時候,只將增加或改變的部分增加到備份文件中,從而避免大量相同文件的重復復制,提高備份的速度。當系統(tǒng)崩潰時,可直接啟動已克隆的系統(tǒng),達到系統(tǒng)快速修復的目的。因此系統(tǒng)克隆方法可以一步實現(xiàn)系統(tǒng)備份和鏡像修復/系統(tǒng)恢復兩個步驟才能完成的類似功能,因此系統(tǒng)克隆實際上是一種系統(tǒng)備份及修復方法。
上述克隆,就是指分區(qū)到分區(qū)(硬盤到硬盤)的存儲數(shù)據(jù)完全拷貝,本文中是對 Linux系統(tǒng)的拷貝,所以稱為“系統(tǒng)克隆”。
本發(fā)明還提供了一種Linux系統(tǒng)修復方法,該方法是基于rsync命令采用滾動弱校驗和MD5強校驗,可在很短時間內按照拷貝算法計算出備份文件與目標文件的不同之處,可在目標系統(tǒng)出現(xiàn)故障時,使用修復方法對目標系統(tǒng)進行修復,且只需要對目標系統(tǒng)中相對于備份文件已丟失或修改的文件進行修復。
修復方法包括鏡像文件修復、系統(tǒng)克隆和系統(tǒng)恢復等?,F(xiàn)對本發(fā)明提出的鏡像修復進行說明。在鏡像修復之前,用戶需要用Linux系統(tǒng)的mksquashfs命令將他所使用的系統(tǒng)備份為一個squashfs鏡像文件到磁盤的一個分區(qū)或移動存儲設備,在修復的時候需要使用到這個鏡像文件。
圖3所示為準備鏡像備份文件的過程利用mksquashfs命令將用戶當前系統(tǒng)備份為一個squashfs鏡像備份文件A,該鏡像備份文件A保存到本地磁盤分區(qū)或移動存儲設備,鏡像修復或系統(tǒng)恢復時會使用此鏡像備份文件A ;系統(tǒng)備份開始之前,可以事先估算鏡像備份文件A的大小,并與存儲設備的剩余空間比較,自動判斷存儲設備的剩余空間是否滿足系統(tǒng)備份的需求。
參照圖4,為根據(jù)本發(fā)明進行鏡像修復時的流程圖。系統(tǒng)程序異?;驍?shù)據(jù)丟失時, 可以利用鏡像備份文件A快速修復系統(tǒng)文件或用戶數(shù)據(jù)。鏡像修復前需要選擇鏡像備份文件A存儲介質并指定鏡像備份文件A,存儲介質分為本地磁盤分區(qū)或移動存儲設備。
本發(fā)明基于rsync命令的鏡像修復方法,其基本原理為鏡像備份文件A與目標系統(tǒng)B均包含某同一文件,如果目標系統(tǒng)B上的此文件丟失或被修改,系統(tǒng)通過文件拷貝算法利用鏡像備份文件A修復目標系統(tǒng)B中該丟失或被修改文件,而對目標系統(tǒng)B相對于鏡像備份文件A未改動或新增的文件不做處理。該拷貝算法用于比較出目標系統(tǒng)B與鏡像備份文件A之間的不同之處,以決定對目標系統(tǒng)B的文件修復時哪些需要修復哪些不需要修復, 具體實現(xiàn)步驟如下(1)將目標系統(tǒng)B劃分成大小為N的不重合的若干塊(文件末尾部分分塊大小可能不足N),并對這些數(shù)據(jù)塊進行兩種不同方式的校驗32位的滾動弱校驗、1 位的MD5強校驗;弱校驗由于其滾動特性,較之強校驗計算速度快。
(2)將目標系統(tǒng)B中每個數(shù)據(jù)塊的弱校驗、強校驗結果發(fā)送給鏡像備份文件A ; (3)系統(tǒng)將鏡像備份文件A的每個長度為N的數(shù)據(jù)塊與從目標系統(tǒng)B接收到的弱校驗值進行匹配,若相同再進行強校驗匹配,找出所有能匹配的部分,則剩下的為不能匹配的部分,從而能快速找出目標系統(tǒng)B的文件與鏡像備份文件A之間的差別,即可選出需要修復拷貝的數(shù)據(jù);由于弱校驗的滾動特性可以快速地篩選出需要拷貝的數(shù)據(jù)塊。該算法的運算量主要集中在鏡像備份文件A上。
(4 )通過上述計算,系統(tǒng)將鏡像備份文件A中與目標系統(tǒng)B不相同的部分發(fā)送給目標系統(tǒng)B (即經(jīng)弱校驗與強校驗得到的不能匹配的部分),B接收到兩者之間的不同之處,從而修復系統(tǒng)中已修改或丟失的文件。
如上方式,通過rsync命令的執(zhí)行,避免了在鏡像修復過程中,對相同數(shù)據(jù)的拷貝。顯著縮短了系統(tǒng)修復時間且實現(xiàn)了運行系統(tǒng)的修復功能,從某種程度上也保證了 rsync 的優(yōu)越性能。
如圖4所示,鏡像修復一般包括的步驟為1)、準備一個squashfs鏡像備份文件A保存到本地磁盤分區(qū)或移動存儲設備;2)、選擇備份文件存儲介質并指定鏡像備份文件;3)、在系統(tǒng)能夠啟動的情況下,系統(tǒng)可直接利用鏡像備份文件A按照上述修復方法快速修復系統(tǒng)文件或用戶數(shù)據(jù);上述修復方法是直接由系統(tǒng)將鏡像文件A中存在而目標系統(tǒng) B中已丟失或被修改的文件,發(fā)送給目標系統(tǒng)B從而完成目標系統(tǒng)的修復。
關于本發(fā)明基于rsync命令的系統(tǒng)克隆方法修復目標系統(tǒng)的過程,已如前文所述,在此不再贅述。
但有些系統(tǒng)的崩潰會導致系統(tǒng)無法啟動,則可借助于BIOS引導的修復程序利用鏡像備份文件A將系統(tǒng)恢復到鏡像備份文件A保存時的系統(tǒng)狀態(tài)。有些系統(tǒng)異常是有新增的錯誤系統(tǒng)文件造成的,由于鏡像修復會保留鏡像文件備份后用戶新增的系統(tǒng)文件和用戶數(shù)據(jù),因而修復后該錯誤的系統(tǒng)文件仍然存在,使得系統(tǒng)仍然處于異常,此種情況鏡像修復無法解決;需要采用系統(tǒng)恢復來解決,系統(tǒng)恢復后,鏡像文件備份后用戶新增的系統(tǒng)文件和用戶數(shù)據(jù)將丟失。
如圖5所示為系統(tǒng)無法啟動時,系統(tǒng)恢復的流程圖。系統(tǒng)無法啟動時,借助BIOS 引導的修復程序利用鏡像備份文件恢復系統(tǒng)到鏡像備份文件保存時的系統(tǒng)狀態(tài)。BIOS引導的主要功能是=Linux內核加載支持DirectFB圖形顯示的initrd到內存,修復程序在內存環(huán)境中利用Direct冊顯示圖像界面,選擇備份文件存儲介質并指定鏡像文件,完成系統(tǒng)修復整個過程。
權利要求
1.一種Linux系統(tǒng)備份方法,其特征在于該方法是基于rsync命令,該命令采用滾動弱校驗和強校驗,首先計算出當前系統(tǒng)文件與備份文件的不同之處,在系統(tǒng)前次利用備份方法進行備份之后再次進行備份時,只需將當前系統(tǒng)在前次備份之后用戶新增或修改的文件增加到前次備份文件中。
2.如權利要求1所述的備份方法,其特征在于所述的備份方法為系統(tǒng)克隆,即將需要備份的文件利用rsync命令完全復制到磁盤其它分區(qū)或移動存儲設備。
3.如權利要求2所述的備份方法,其特征在于所述方法實現(xiàn)步驟如下(1)、將備份文件分成大小為N的不重合的若干數(shù)據(jù)塊(文件末尾部分分塊大小可能不足N),并由rsync命令對這些數(shù)據(jù)塊進行兩種不同方式的校驗32位的滾動弱校驗、1 位的強校驗;(2)、將上述每個數(shù)據(jù)塊的弱校驗、強校驗結果發(fā)送給當前系統(tǒng)文件;(3)、由rsync命令對當前系統(tǒng)文件中每個長度為N的數(shù)據(jù)塊進行弱校驗并與從備份文件收到的弱校驗值進行匹配,若相同再進行強校驗匹配,找出所有能相匹配的部分,則剩下的為不能匹配的部分,從而能快速找出當前系統(tǒng)文件與備份文件之間的區(qū)別之處;(4)、通過上述計算,將系統(tǒng)文件中存在而備份文件中沒有的文件,復制到備份文件,實現(xiàn)增量系統(tǒng)文件克隆。
4.一種Linux系統(tǒng)修復方法,其特征在于該方法是基于rsync命令,該命令采用滾動弱校驗和強校驗,首先計算出系統(tǒng)文件與備份文件的不同之處,在目標系統(tǒng)出現(xiàn)故障需要進行修復時,只需對目標系統(tǒng)中相對于備份文件已丟失或修改的文件進行修復。
5.如權利要求4所述的修復方法,其特征在于所述修復方法為利用鏡像備份文件進行鏡像修復。
6.如權利要求5所述的修復方法,其特征在于該鏡像備份文件是用戶在系統(tǒng)正常的情況下使用鏡像備份命令將所使用的系統(tǒng)備份并存儲到磁盤的一個分區(qū)或移動存儲設備, 且在修復進行之前指定該鏡像備份文件的存儲介質并指定該鏡像備份文件。
7.如權利要求4所述的修復方法,其特征在于上述方法實現(xiàn)步驟如下(1)、將系統(tǒng)文件分成大小為N的不重合的若干數(shù)據(jù)塊(文件末尾部分分塊大小可能不足N),并由rsync命令對這些數(shù)據(jù)塊進行兩種不同方式的校驗32位的滾動弱校驗、128 位的強校驗;(2)、將上述每個數(shù)據(jù)塊的弱校驗、強校驗結果發(fā)送給備份文件;(3)、由rsync命令對備份文件中每個長度為N的數(shù)據(jù)塊進行弱校驗并與從系統(tǒng)文件收到的弱校驗值進行匹配,若相同再進行強校驗匹配,找出所有能相匹配的部分,則剩下的為不能匹配的部分,從而能快速找出系統(tǒng)文件與備份文件之間的區(qū)別之處;(4)、通過上述計算,將備份文件中存在而系統(tǒng)文件中丟失或修改的文件發(fā)送到系統(tǒng)文件,系統(tǒng)文件接收到文件從而完成系統(tǒng)的修復。
全文摘要
本發(fā)明包括一種Linux系統(tǒng)備份和修復方法,該方法是基于rsync命令進行滾動弱校驗和強校驗,可在很短時間內計算出當前系統(tǒng)文件與備份文件的不同之處,使系統(tǒng)在前次利用備份方法進行備份之后,再次進行備份時,只需要將當前系統(tǒng)在上次備份之后用戶新增或修改的文件增加到原備份文件中;而在當前系統(tǒng)出現(xiàn)故障需要使用修復方法對目標系統(tǒng)進行修復時,只需對目標系統(tǒng)中相對于備份文件已丟失或修改的文件進行修復。
文檔編號G06F11/14GK102541685SQ20111036286
公開日2012年7月4日 申請日期2011年11月16日 優(yōu)先權日2011年11月16日
發(fā)明者何曌君, 史安生, 徐斌, 許國昌 申請人:中標軟件有限公司