浅析Linux数据备份之道
2015-03-18■
■
在很多人眼中,在Linux中的备份数据是一件很繁琐的事情。其实,在Linux有多种数据备份方式,可以实现单机或者网络备份,操作起来同样有章可循。这里就从多个角度。介绍了在Linux中备份数据的方法,希望对您有所帮助!
使用TAR命令,执行数据备份
在众多的Linux命令中,tar命令和备份操作息息相关,使用该命令,可以简单高效的完成数据备份任务。其使用格式为“tar [参数] [文件/目录 ]”,其中的参数有很多,例如“-c”参数表示创建新的备份文件,并将一个或多个文件参数指定的内容写入备份文件的开头。“-r”参数表示将一个或多个文件参数指定的文件内容写入备份文件的结尾。参数“-t”查看备份文件的内容。参数“-x”从备份文件中抽取一个或者多个文件参数指定的内容。参数“-z”调用gzip来压缩备份文件,与“-x”参数配置完成解压缩操作。参数“-j”调用bzip来压缩备份文件。参数“-v”创建或抽取过程中显示过程信息。“-f”参数指定创建或抽取的文件。“-p”参数使用原文件的原属性。参数“-p”使用绝对路径归档。参数“-N yyyy/mm/dd”只备份比指定日期新的内容。参数“-M”可以实现多卷压缩。
例 如 执 行“tar –cvf /tmp/mydataback.tar /mydata”命令,将“/mydata”中的所有内容备份到“/tmp/mydataback.tar”文件中,并且显示创建过程信息。假设备份的目标为“/mydata”目录,具体执行备份操作时,需要根据实际情况而定。执行“tar -cvzf /tmp/mydataback.tar.gz /mydata”命令,调用Gzip压缩工具完成备份操作。执行“tar–cvjf /tmp/mydataback.tar.bz2 /mydata”命 令,调用bzip2压缩功能完成备份操作。执行“tar cvzMf /dev/st0/mydataback.tar.gz /mydata”命令,将“/mydata”目录中的内容备份到第一个磁带机中的“homeback.tar.gz”文件中,如果磁带机满,需要插入另外的磁带。对应的,执行“tar –xzvf /dev/st0/mydataback.tar.gz /mydata”命令,执行解压动作,将磁带机中“homeback.tar.gz”的内容还原到“/mydata”目录中。为了提高备份灵活性,可以配合计划任务功能,来自动备份所需的内容。
在Windows中,可以利用计划任务来实现该功能。在Linux中虽然可以利用AT命令,来实现定时操作功能,不过该命令仅针对运行一次的任务而言。要想实现循环运行例行性计划任务,需要使用Cron(Crond)这个系统服务来实现。该服务是用来周期性的执行某种任务或等待处理某些事件的一个守护进程,系统默认会安装此服务工具,并且会自动启动Crond进程,Crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。也可以执行“yum install crontabs”命令,来安装该服务。执行“/sbin/servicecrond start”命令,来启动该服务。
执 行“chkconfig –level 35 crond on”命令,使其可以自动运行。执行“crontab –e”命令,可以编辑“crontab”文件,在其中添加“00 01 ** * tar –czvf /dev/st0/tomyang_backup.tar.gz /mydata”内容,之后保存该文件。这样,在每天凌晨1点,将“/mydata”目 录 中 的 内容备份到第一个磁带机中的“tomyang_backup.tar.gz”文件中。运行“crontab l”命令,来显示当前用户的Crontab文件的内容。查看所有的计划任务项目。这里简单介绍一下YUM安装方式,和普通的RPM安装方式不同,YUM安装方式可以根据预设的YUM源,来自动分析安装某软件所需的全部RPM包,之后根据不同RPM包之间的依赖关系,自动下载所有相关的RPM包,来完成所需软件的安装操作。所谓YUM源,指的是存放所有RPM包以及相关分析文件的路径,包括指定的本地目录,FTP或者HTTP服务器等。
利用Dump命令执行数据备份
使用Tar命令,可以针对指定的文件进行备份。而使用Dump命令,针对的是文件系统进行备份操作,可以将目录或者整个文件系统备份到指定的设备或者大文件中。Dump命令可以检查文件系统上的文件并确定备份目标,而且可以实现分卷备份功能,其语法结构为“dump [-cu][-0123456789][-f 设备名][-T日期][目录或者文件系统]”。
其中的“-c”参数表示创建新的备份文件。参数“-0123456789”表示备份的等级,“0”表示最完整的备份,可以备份所有的文件。对于非0级别,可以备份上一次备份以来修改或者新增的文件。“-f”参数指定备份设备,“-T”参数指定开始备份的时间。“-u”参数可以产生备份记录文件,“-t”参数指定备份文件名,“-W”或者“-w”参数显示备份的参数信息。例如执行“dump-0u –f /tmp/mydataback.bak /mydata”命 令,将“/mydata”目录全部内容备份到“/tmp/mydataback.bak”文件中,备份等级为0,在“etc/dumpdates”文件中记录备份信息。执行“dump –lu –f /tmp/mydataback.bak /mydata”命令,执行等级为1的备份操作,只备份指定目录中使用上面的等级为0的备份命令之后发生变动的文件,这实际上实现了增量备份功能,其余参数与上述内容相同。
当然,将Dump的备份等级和Crontab命令相结合,可以实现定时自动备份功能。 利 用 执 行“crontab –e”命令,对“crontab”文件进行编辑处理,在其中添加“00 01 * * 0 dump -0u /tmp/mydataback.bak /mydata”,“00 01 * * 1 dump -1u /tmp/mydataback1.bak /mydata”,“00 01 * * 2 dump-2u /tmp/mydataback2.bak /mydata”,“00 01 ** 3 dump -3u /tmp/mydataback3.bak /mydata”,“00 01 * * 4 dump -4u /tmp/mydataback4.bak /mydata”,“00 01 * * 5 dump-5u /tmp/mydataback5.bak /mydata”,“00 01 ** 6 dump -6u /tmp/mydataback6.bak /mydata”等内容,这样就可以利用计划任务功能,在每周日凌晨1点对预设目录执行完整备份操作,之后从星期一到星期六每天凌晨1点执行一次增量备份任务,产生的备份文件名称 从“mydataback1.bak”到“mydataback6.bak”。将完整备份和增量备份结合起来使用,针对的目标是自上一次备份以来内容发生变动的文件。
当然,如果想利用计划任务功能实现差异备份,则在“crontab”文件中添加“00 01 * * 0 dump -0u /tmp/mydataback.bak /mydata”,“00 01 * * 1 dump -1u /tmp/mydataback1.bak /mydata”,“00 01 * * 2 dump-1u /tmp/mydataback2.bak /mydata”,“00 01 ** 3 dump -1u /tmp/mydataback3.bak /mydata”,“00 01 * * 4 dump -1u /tmp/mydataback4.bak /mydata”,“00 01 * * 5 dump-1u /tmp/mydataback5.bak /mydata”,“00 01 ** 6 dump -1u /tmp/mydataback6.bak /mydata”,注意其中的第一行Dump命令的等级为0,后面命令的等级全部为1,这样就可以在每周日凌晨1点对预设目录执行完整备份操作,之后从星期一到星期六每天凌晨1点执行一次差异备份任务。将完整备份和差异备份结合,针对的目标是自上一次完整备份以来内容发生变动的文件。将上述两种备份组合进行比较,不难看出,完整备份+增量备份所产生的备份文件的体积会小于后一种备份组合模式。例如,当周日备份后,假设周一周二周三有些文件内容变动了,前者只备份针对上一次备份后内容改变文件,而后者则每天备份自周日完整备份之后内容变动的文件。但是,在恢复数据时,后者则方便的多,只需恢复最近一次完整备份和最后一次差异备份的数据即可,
在恢复数据时,使用的是Restore命令,其语法为“restore –[hirRCvy] [-f 备份文件]”。其中的“-C”参数可以将备份文件和已存在的文件进行比对。“-f”参数指定备份的文件。“-h”参数表示仅仅还原目录但排除和该目录相关的文件。“-i”参数使用交互模式执行还原操作。“-r”参数执行还原操作。“-R”参数表示全面还原文件系统时,检查操作的开始点。“-v”参数显示还原过程,“-y”参数忽略提示问题,全部按照同意方式操作指令。例如执行“restore–v /tmp/mydataback.bak/mydata”命令,将备份文件“/tmp/mydataback.bak”还原到“/mydata”目录中。
使用CPIO命令执行数据备份
和Tar命令相比,CPIO的功能更为全面和完善。例如,当备份的tar文件里面存在坏块的话,使用Tar命令,就无法对备份文件进行顺利访问。而使用CPIO命令,则可以访问除了坏块之外的所有备份数据。CPIO命令在执行备份操作时,需要合适的文件列表,因此常常将其和ls命令结合起来使用。其语法结构为“cpio[参数] [文件列表]”。其中的“-o”参数表示创建备份文件,“-v”参数显示备份过程,“-i”参数恢复备份数据,“-d”参数自动创建目录,“-t”查看备份文件,“-u”强制覆盖已经存在的内容,“-m”保留时间属性,“--absolute-filenames”参数保留绝对路径。
例如执行“ls /mydata |cpio o > /tmp/mydataback.bak”命令,将“/mydata”目录中的所有内容备份到“/tmp/mydataback.bak”文件中。执行“find /mydata mtime l type f print | cpio o > /tmp/mydataback.bak”命令,可以将“/mydata”目录中24小时内修改过的文件备份到“/tmp/mydataback.bak”中。当然,也可以利用crontab命令,在“crontab”文件中添加“00 01 * * * ls /mydata | cpio o > / tmp/mydataback.bak”语句,在每天的凌晨一点将“/mydata”目录的内容备份到“tmp/mydataback.bak”文件中。
对Linux分区执行整体备份
在Windows中,可以使用Ghost或者系统自带的备份工具,将指定的分区创建为镜像文件,之后根据需要将其还原到目标分区中,这大大提高了数据备份和恢复的效率。在Linux中,可以使用Partimage这款软件,使用gzip或者bzip压缩格式,针对不同的分区创建镜像文件,该工具还可以将镜像文件进行分割处理,便于复制到优盘等移动存储器上,还可以通过网络保存分区数据。利用镜像文件,可以提高装机效率。例如现在某台主机上安装好Linux,并为其创建镜像文件,之后利用Partimage的恢复功能,在别的主机上恢复镜像文件,快速完系统安装操作。该工具支持ext2fs,ext3fs,Reiser3,FAT12/32,NTFS,HPFS等分区类型。
执 行“yum y install bzip2-devel.i* newt-devel.i* openssl-devel.i*” 命令,安装关联的软件包,这可以为Partimage的安装提供支撑。执行“tar xvjf partimage-0.x.x.x.tar.bz2”,“cd partimage-0.x.x”,“./configure”,“make”,“make install”命 令,执 行Parimage的安装操作,其中的“partimage-0.x.x.x.tar.bz2”表示安装包版本号,其名称根据实际情况而定。之后执行“partimage”命令,启动该程序。在其运行界面中的“image file to create /use”栏中输入目标镜像文件的名称和保存路径,如果不指定路径的话,则保存在用户当前目录中,默认的后缀名为“.000”,您可以输入“.img”后缀名。在“Partition to save/restore”列表中显示所有的分区项目,选择需要备份的分区。
在“Action to done” 栏中选择“save partition into a new image file”项,表示创建分区镜像文件。选择“Restore partition from an image file”项,则表示从目标镜像文件中还原数据,选择“Restore an MBR from the imagefile”项,表示还原目标分区的引导记录。设置好所需参数后,点击F5键,在弹出界面中的“Compression level”栏中选择压缩级别,依次包括不压缩,使用gzip进行压缩,使用Bzip2进行压缩等。在“Options”栏 中 选 择“check partition before saving”项,表示在操作之前检测分区是否存在错误,选 择“Enter description”项,允许输入描述信息。选择“Overwrite without prompt”项,表示直接覆盖数据禁止显示提示信息。在“Image split mode”栏中选择分卷压缩方式,依次包括当备份文件所在的磁盘空间不足时,选择新的存储位置;当备份文件体积查过预定值时选择新的存储位置;在每次改变分卷信息后等待操作等。在“If finished successfully”栏中设置当备份完毕后执行的动作,依次包括等待,关机,重启,退出Partimage等。点击F5键,输入描述信息,点击OK按钮,显示详细的备份参数信息,点击OK按钮执行备份操作,将指定分区备份为预设的镜像文件。
按照上述方法,可以对任意分区执行备份处理。当执行还原操作时,先启动Partimage,在其操作界面中选择目标分区,在“Image File to create/use”栏 中 输入镜像文件名称,在“Action to done”栏中选择还原项目,点击F5键,可以在还原操作进行适当调整,例如选择“Erase free blocks with zero values”项,可以对目标分区空闲部分进行0数据填充操作,彻底清除之前的无关内 容。 选 择“Simulation of the restoreation(nothing is written)”项,表示未被镜像文件覆盖的区域如果存在原始数据,之后依然可以对其进行访问。点击F5键,执行数据还原操作,使用选定的镜像文件恢复目标分区内容。
除了在本机上使用Partimage备份还原分区外,还可以使用客户机/服务器模式运行该软件,允许用户将镜像文件存储到服务器上,之后从服务器上执行分区还原操作。在服务器上安装Partimage的服务器端程序,执 行“rpm ivm partimageserver-x.x.x.x.el5.rf.i386.rpm”命令,完成安装操 作,其 中 的“partimageserver-x.x.x.x” 表 述 具体的版本号。执行“service partimaged restart” 和“chkconfig partimaged on”命 令,启 动Parimage服 务器端程序,并将其设置为自动运行状态。使用VI等工具, 对“/etc/partimaged/partimagedusers”文件进行编辑,在其中添加允许使用网络备份和恢复的用户名称,每行一个用户名,这些用户必须是已经存在的系统用户。对应的,在客户端主机上执行“rpm ivh partimage-x.x.x-l.el5.rf.i386.rpm”命令,执行Partimage客户端程序的安装操作。
在客户端上执行“partimage”命令,来启动该程序,在其主界面中可以看到,使用方法与单机版几乎一致,例如选择目标分区,输入镜像文件名称等。
所不同的是需要在“Connect to server”栏中输入Partimage服务器端程序所在的服务器IP以及端口号(默认为4025),点击F5键,在下一个窗口中输入对应的用户名和密码,该用户名必须保存在上述“/etc/partimaged/partimagedusers”文件中。点击OK按钮,在下一步窗口可以设置备份参数,这与上述介绍的基本一致。之后点击F5键,执行针对目标分区的备份操作,并将产生的镜像文件保存到服务器上的“/var/partimaged”目录中。当需要还原镜像文件时,只需在Partimage主界面中选择目标分区,选择镜像文件,输入服务器IP和端口,之后按照提示完成恢复操作即可,具体的操作方法与上述基本相同。
征稿启示
数据管理栏目旨在帮助广大网络管理技术人员解决目前在企业中存在的各种数据存储管理方面的问题,栏目涉及归档、存储、容灾、备份、大数据、虚拟化等方面内容,现向广大读者朋友征稿。为了更好的实现这个目标,使数据管理栏目的文章更加充实、实用,特向广大读者朋友征集稿件,字数在3000字左右,要求必须原创。希望广大读者朋友踊跃投稿,
投稿须知:
1、非常欢迎采用电子邮件的形式投稿,稿件,邮件可直接发给投稿信箱:micsun@365master.com。以电子邮件投稿的读者,请在邮件主题中注明“投稿”字样。
2、来稿请以TXT文本格式保存。文章中需要插入图片者,请将清晰图片另存为BMP/JPEG/TIF格式。行文中出现的标点符号应使用中文全角字符(程序代码和屏幕显示中的原字符保持不变)。
3、所有来稿本刊会在五个工作日内回信确认是否收到,一个月内确认是否发表。作者请在来信中注明自己的姓名、工作单位、联系地址、电话(包括手机)、邮编、身份账号码等信息,以便本刊随时与您联系。如未得到回复,请您确定一下邮件是否正常发出,若重发后仍未得到回复,可以打电话查询,编辑部电话:
010-88559469。