一种Linux系统备份和修复方法

文档序号:6438524阅读:320来源:国知局
专利名称:一种Linux系统备份和修复方法
技术领域
本发明涉及Linux系统安全领域,尤指一种Linux系统备份和修复方法。
技术背景
网络病毒、自然灾害或用户的不正确操作都有可能引起程序异常、数据丢失,甚至系统无法启动。关键数据的丢失很大程度上会产生严重影响,有时会造成无法挽回的损失。 系统备份修复可以说是系统可用性的最后一道防线,其目的在于系统崩溃时能够快速的修复系统和用户数据。
目前,Linux系统常见的备份修复方案有两种一种方案是将用户运行的系统备份为一个压缩文件,当系统无法启动时,借助于BIOS 引导的修复程序解压缩备份文件重新安装系统;该方案耗时长且用户系统在备份文件以后新增的系统文件和数据将丢失。此外,系统运行时,如果利用解压缩文件方式修复系统,正在运行进程的系统文件会被覆盖,这将导致整个系统崩溃。
另一种方案是基于rsync命令实现远程备份修复;该方案的系统备份修复需要远程服务器,备份修复时间依赖于连接本机和服务器的网络状态,这种修复方式需要除客户机外,需要新增一台服务器用于备份功能。
因此,现有的压缩备份修复方法会丢失在备份文件以后新增的系统文件且系统运行时无法实现修复,而基于rsync命令实现远程备份修复方法需要额外配置服务器,均存在不足,本发明人认为需要提供一种方案,可以实现不依赖于服务器的而对运行的目标系统快速备份和修复,为用户提供“安全可控”的Linux系统。发明内容
为了实现上述目的,本发明提供一种Linux系统备份方法,该方法是基于rsync命令,该命令采用滚动弱校验和强校验,首先计算出当前系统文件与备份文件的不同之处,在系统前次利用备份方法进行备份之后再次进行备份时,只需将当前系统在前次备份之后用户新增或修改的文件增加到前次备份文件中。
所述的备份方法为系统克隆,即将系统中的文件利用rsync命令完全COPY到磁盘其它分区或移动存储设备。
上述方法的实现步骤如下(1)、将备份文件分成大小为N的不重合的若干数据块(文件末尾部分分块大小可能不足N),并由rsync命令对这些数据块进行两种不同方式的校验32位的滚动弱校验、128 位的强校验;(2)、将上述每个数据块的弱校验、强校验结果发送给当前系统文件;(3)、由rsync命令对当前系统文件中每个长度为N的数据块进行弱校验并与从备份文件收到的弱校验值进行匹配,若相同再进行强校验匹配,找出所有能相匹配的部分,则剩下的为不能匹配的部分,从而能快速找出当前系统文件与备份文件之间的区别之处;(4)、通过上述计算,将系统文件中存在而备份文件中没有的文件,复制到备份文件,实现增量系统文件克隆。
这里需要说明的是,完全COPY是指复制过程保留系统中文件的权限属性和目录结构。
本发明还提供了一种Linux系统修复方法,该方法是基于rsync命令,该命令采用滚动弱校验和强校验,首先计算出系统文件与备份文件的不同之处,在目标系统出现故障需要进行修复时,只需对目标系统中相对于备份文件已丢失或修改的文件进行修复。
所述修复方法为利用镜像文件进行修复。系统在正常情况下,用户需用Linux系统的mksquashfs命令(即镜像备份命令)将他所使用的系统备份为一个squashfs镜像文件到磁盘的一个分区或移动存储设备。在进行修复之前需要使用到这个镜像文件。
上述方法的实现步骤如下(1)、将系统文件分成大小为N的不重合的若干数据块(文件末尾部分分块大小可能不足N),并由rsync命令对这些数据块进行两种不同方式的校验32位的滚动弱校验、128 位的强校验;(2)、将上述每个数据块的弱校验、强校验结果发送给备份文件;(3)、由rsync命令对备份文件中每个长度为N的数据块进行弱校验并与从系统文件收到的弱校验值进行匹配,若相同再进行强校验匹配,找出所有能相匹配的部分,则剩下的为不能匹配的部分,从而能快速找出系统文件与备份文件之间的区别之处;(4)、通过上述计算,将备份文件中存在而系统文件中丢失或修改的文件发送到系统文件,系统文件接收到文件从而完成系统的修复。
由于弱校验的滚动特性可以快速地筛选出需要拷贝的数据块,该算法的运算量主要集中在备份文件上。
借此,可以提高Linux的系统的备份和修复效率。使用本发明的镜像修复方法对系统进行修复时,在备份文件之后用户新增的系统文件和用户数据依然能够保存,仅对系统的丢失或修改的文件进行修复,不仅可以解决现有压缩文件修复法无法保留新增文件的缺点,更能提高系统的修复效率。


图1为本发明备份修复方法的流程图。
图2为本发明系统克隆的流程图。
图3为本发明镜像文件备份流程图。
图4为本发明镜像修复流程图。
图5为本发明系统恢复流程图。
具体实施方式
为了更好地理解本发明,现参照说明书附图作以下详细地说明。
参照图1,为本发明备份修复方法的基本流程图。本发明主要包括两个基本的方案,系统克隆和镜像备份修复。以下分别进行说明。
本发明提供一种Linux系统备份方法,该方法是基于rsync命令,该命令采用滚动弱校验和强校验,可在很短时间内按照拷贝算法计算出当前系统文件与备份文件的不同之处,使系统在前次利用备份方法进行备份之后,再次进行备份时,只需要将上次备份之后用户新增或修改的文件增加到原备份文件中。
备份方法包括目前常用的压缩文件法,镜像文件备份法以及本发明提供的系统克隆法。现对系统克隆法进行说明图2为根据本发明进行系统克隆时的流程图。系统克隆是备份系统的一种方案。目标设备应该是本地磁盘其它分区或移动存储设备,如果本地磁盘没有其它分区,需要用户手动创建分区。系统克隆开始前,可以事先估算当前系统的大小,并与目标设备的空间比较, 自动判断目标设备空间是否满足系统克隆的需求。本发明的系统克隆用到拷贝算法,该拷贝算法是指用到rsync命令找出将用户系统备份到磁盘分区或移动存储设备的备份文件与需要备份的系统文件之间的差别,因此,前次利用备份方法进行备份之后,如果每次需要备份系统到该目标设备时,只需要复制上次备份后新增的系统文件或用户数据至原备份文件中。
拷贝算法的目的是找出当前系统文件与备份文件的差别,本发明系统克隆方法具体实现步骤如下1)、将备份文件文件分成大小为N的不重合的若干数据块(文件末尾部分分块大小可能不足N),并由rsync命令对这些数据块进行两种不同方式的校验32位的滚动弱校验、 1 位的MD5强校验;2)、将上述每个数据块的弱校验、强校验结果发送给当前系统文件;3)、由rsync命令对当前系统文件中每个长度为N的数据块进行弱校验并与从系统文件收到的弱校验值进行匹配,若相同再进行强校验匹配,找出所有能相匹配的部分,则剩下的为不能匹配的部分,从而能快速找出当前系统文件与备份文件之间的区别之处;4)、通过上述计算,将系统文件中存在而备份文件中没有的文件,复制到备份文件,实现增量文件克隆。
通过上述方法备份的时候,只将增加或改变的部分增加到备份文件中,从而避免大量相同文件的重复复制,提高备份的速度。当系统崩溃时,可直接启动已克隆的系统,达到系统快速修复的目的。因此系统克隆方法可以一步实现系统备份和镜像修复/系统恢复两个步骤才能完成的类似功能,因此系统克隆实际上是一种系统备份及修复方法。
上述克隆,就是指分区到分区(硬盘到硬盘)的存储数据完全拷贝,本文中是对 Linux系统的拷贝,所以称为“系统克隆”。
本发明还提供了一种Linux系统修复方法,该方法是基于rsync命令采用滚动弱校验和MD5强校验,可在很短时间内按照拷贝算法计算出备份文件与目标文件的不同之处,可在目标系统出现故障时,使用修复方法对目标系统进行修复,且只需要对目标系统中相对于备份文件已丢失或修改的文件进行修复。
修复方法包括镜像文件修复、系统克隆和系统恢复等。现对本发明提出的镜像修复进行说明。在镜像修复之前,用户需要用Linux系统的mksquashfs命令将他所使用的系统备份为一个squashfs镜像文件到磁盘的一个分区或移动存储设备,在修复的时候需要使用到这个镜像文件。
图3所示为准备镜像备份文件的过程利用mksquashfs命令将用户当前系统备份为一个squashfs镜像备份文件A,该镜像备份文件A保存到本地磁盘分区或移动存储设备,镜像修复或系统恢复时会使用此镜像备份文件A ;系统备份开始之前,可以事先估算镜像备份文件A的大小,并与存储设备的剩余空间比较,自动判断存储设备的剩余空间是否满足系统备份的需求。
参照图4,为根据本发明进行镜像修复时的流程图。系统程序异常或数据丢失时, 可以利用镜像备份文件A快速修复系统文件或用户数据。镜像修复前需要选择镜像备份文件A存储介质并指定镜像备份文件A,存储介质分为本地磁盘分区或移动存储设备。
本发明基于rsync命令的镜像修复方法,其基本原理为镜像备份文件A与目标系统B均包含某同一文件,如果目标系统B上的此文件丢失或被修改,系统通过文件拷贝算法利用镜像备份文件A修复目标系统B中该丢失或被修改文件,而对目标系统B相对于镜像备份文件A未改动或新增的文件不做处理。该拷贝算法用于比较出目标系统B与镜像备份文件A之间的不同之处,以决定对目标系统B的文件修复时哪些需要修复哪些不需要修复, 具体实现步骤如下(1)将目标系统B划分成大小为N的不重合的若干块(文件末尾部分分块大小可能不足N),并对这些数据块进行两种不同方式的校验32位的滚动弱校验、1 位的MD5强校验;弱校验由于其滚动特性,较之强校验计算速度快。
(2)将目标系统B中每个数据块的弱校验、强校验结果发送给镜像备份文件A ; (3)系统将镜像备份文件A的每个长度为N的数据块与从目标系统B接收到的弱校验值进行匹配,若相同再进行强校验匹配,找出所有能匹配的部分,则剩下的为不能匹配的部分,从而能快速找出目标系统B的文件与镜像备份文件A之间的差别,即可选出需要修复拷贝的数据;由于弱校验的滚动特性可以快速地筛选出需要拷贝的数据块。该算法的运算量主要集中在镜像备份文件A上。
(4 )通过上述计算,系统将镜像备份文件A中与目标系统B不相同的部分发送给目标系统B (即经弱校验与强校验得到的不能匹配的部分),B接收到两者之间的不同之处,从而修复系统中已修改或丢失的文件。
如上方式,通过rsync命令的执行,避免了在镜像修复过程中,对相同数据的拷贝。显著缩短了系统修复时间且实现了运行系统的修复功能,从某种程度上也保证了 rsync 的优越性能。
如图4所示,镜像修复一般包括的步骤为1)、准备一个squashfs镜像备份文件A保存到本地磁盘分区或移动存储设备;2)、选择备份文件存储介质并指定镜像备份文件;3)、在系统能够启动的情况下,系统可直接利用镜像备份文件A按照上述修复方法快速修复系统文件或用户数据;上述修复方法是直接由系统将镜像文件A中存在而目标系统 B中已丢失或被修改的文件,发送给目标系统B从而完成目标系统的修复。
关于本发明基于rsync命令的系统克隆方法修复目标系统的过程,已如前文所述,在此不再赘述。
但有些系统的崩溃会导致系统无法启动,则可借助于BIOS引导的修复程序利用镜像备份文件A将系统恢复到镜像备份文件A保存时的系统状态。有些系统异常是有新增的错误系统文件造成的,由于镜像修复会保留镜像文件备份后用户新增的系统文件和用户数据,因而修复后该错误的系统文件仍然存在,使得系统仍然处于异常,此种情况镜像修复无法解决;需要采用系统恢复来解决,系统恢复后,镜像文件备份后用户新增的系统文件和用户数据将丢失。
如图5所示为系统无法启动时,系统恢复的流程图。系统无法启动时,借助BIOS 引导的修复程序利用镜像备份文件恢复系统到镜像备份文件保存时的系统状态。BIOS引导的主要功能是=Linux内核加载支持DirectFB图形显示的initrd到内存,修复程序在内存环境中利用Direct冊显示图像界面,选择备份文件存储介质并指定镜像文件,完成系统修复整个过程。
权利要求
1.一种Linux系统备份方法,其特征在于该方法是基于rsync命令,该命令采用滚动弱校验和强校验,首先计算出当前系统文件与备份文件的不同之处,在系统前次利用备份方法进行备份之后再次进行备份时,只需将当前系统在前次备份之后用户新增或修改的文件增加到前次备份文件中。
2.如权利要求1所述的备份方法,其特征在于所述的备份方法为系统克隆,即将需要备份的文件利用rsync命令完全复制到磁盘其它分区或移动存储设备。
3.如权利要求2所述的备份方法,其特征在于所述方法实现步骤如下(1)、将备份文件分成大小为N的不重合的若干数据块(文件末尾部分分块大小可能不足N),并由rsync命令对这些数据块进行两种不同方式的校验32位的滚动弱校验、1 位的强校验;(2)、将上述每个数据块的弱校验、强校验结果发送给当前系统文件;(3)、由rsync命令对当前系统文件中每个长度为N的数据块进行弱校验并与从备份文件收到的弱校验值进行匹配,若相同再进行强校验匹配,找出所有能相匹配的部分,则剩下的为不能匹配的部分,从而能快速找出当前系统文件与备份文件之间的区别之处;(4)、通过上述计算,将系统文件中存在而备份文件中没有的文件,复制到备份文件,实现增量系统文件克隆。
4.一种Linux系统修复方法,其特征在于该方法是基于rsync命令,该命令采用滚动弱校验和强校验,首先计算出系统文件与备份文件的不同之处,在目标系统出现故障需要进行修复时,只需对目标系统中相对于备份文件已丢失或修改的文件进行修复。
5.如权利要求4所述的修复方法,其特征在于所述修复方法为利用镜像备份文件进行镜像修复。
6.如权利要求5所述的修复方法,其特征在于该镜像备份文件是用户在系统正常的情况下使用镜像备份命令将所使用的系统备份并存储到磁盘的一个分区或移动存储设备, 且在修复进行之前指定该镜像备份文件的存储介质并指定该镜像备份文件。
7.如权利要求4所述的修复方法,其特征在于上述方法实现步骤如下(1)、将系统文件分成大小为N的不重合的若干数据块(文件末尾部分分块大小可能不足N),并由rsync命令对这些数据块进行两种不同方式的校验32位的滚动弱校验、128 位的强校验;(2)、将上述每个数据块的弱校验、强校验结果发送给备份文件;(3)、由rsync命令对备份文件中每个长度为N的数据块进行弱校验并与从系统文件收到的弱校验值进行匹配,若相同再进行强校验匹配,找出所有能相匹配的部分,则剩下的为不能匹配的部分,从而能快速找出系统文件与备份文件之间的区别之处;(4)、通过上述计算,将备份文件中存在而系统文件中丢失或修改的文件发送到系统文件,系统文件接收到文件从而完成系统的修复。
全文摘要
本发明包括一种Linux系统备份和修复方法,该方法是基于rsync命令进行滚动弱校验和强校验,可在很短时间内计算出当前系统文件与备份文件的不同之处,使系统在前次利用备份方法进行备份之后,再次进行备份时,只需要将当前系统在上次备份之后用户新增或修改的文件增加到原备份文件中;而在当前系统出现故障需要使用修复方法对目标系统进行修复时,只需对目标系统中相对于备份文件已丢失或修改的文件进行修复。
文档编号G06F11/14GK102541685SQ20111036286
公开日2012年7月4日 申请日期2011年11月16日 优先权日2011年11月16日
发明者何曌君, 史安生, 徐斌, 许国昌 申请人:中标软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1