Linux系统下数据备份与恢复

(整期优先)网络出版时间:2012-03-13
/ 1

Linux系统下数据备份与恢复

宋刚

重庆城市管理职业学院信息工程系宋刚

【摘要】介绍了在Linux操作系统下数据备份的重要性,策略的选择。列举了常用Linux命令实现数据备份与恢复。

【关键词】Linux;数据备份;命令

【中图分类号】G658.5【文章标识码】C【文章编号】1326-3587(2012)03-0019-01

一、为什么要备份?

Linux系统是一个健壮而稳定的计算机操作系统。但是任何系统都有可能遭遇到一些无法考虑到的失效,比如人为误操作,电气故障,以及自然界不可抗力等等,其后果就是计算机系统中最珍贵的数据丢失。在这些情况威胁下,数据备份就成为非常重要和必要的安全措施。

二、备份的策略

基本的备份策略分为下面三类:

完全备份(fullbackup):对文件系统中所有的文件和目录进行备份。其特点是备份时间长,存储的数据量大,通常是在安装好系统时首次创建备份时执行一次完全备份。

增量备份(Incrementalbackup):只备份上次完全备份或增量备份以来新创建、新修改的文件。它的特点是最少的备份时间,最小的数据存储空间,但在恢复过程时需要将之前的完全备份和增量备份逐一恢复,因此时间上较慢。

差异备份(differentialbackup):差异备份与增量备份类似,只备份更动过的数据。区别是增量备份的是上一次备份以(无论是哪种数据备份方式)来,所有发生变化的文件;差异备份则要对完全备份以来,更新之后,与完全备份有差异的部分进行备份。

三、备份工具命令

1、dd命令。

dd是Linux下常用的磁盘文件系统完全备份命令。它针对指定大小的磁盘区块进行物理读写的拷贝,还能在拷贝的同时进行一些必要的压缩转换。因为其低级读写的特性,常常用它来进行整块硬盘间的拷贝,还有就是特殊磁道的备份。

例一:磁盘备份。

#ddif=/dev/sdaof=/dev/sdb#磁盘sda复制到磁盘sdb

#ddif=/dev/sdaof=/path/image#将磁盘sda复制到路径为path的image文件

例二:磁盘恢复。

#ddif=/path/imageof=/dev/sda#将path路径下的image文件恢复到sda磁盘

例三:制作光盘镜像。

#ddif=/dev/cdromof=/tmp/cdrom.iso#制作cdrom光盘镜像

例四:MBR(磁盘主引导记录)的备份与恢复。

#ddif=/dev/sdaof=/path/to/imagecount=1bs=512#MBR位于磁盘开始之后的512字节

#ddif=/path/to/imageof=/dev/sda

2、tar命令。

tar是Linux系统针对文件系统指定文件的归档、打包工具。配合压缩工具也能对打包后进行压缩处理。

例一:备份/home目录及其子目录,把它存为home.tar。

#tarcvfhome.tar/home

例一:备份/home目录及其子目录,把它压缩存为home.tar.gz。

#tarczvfhome.tar.gz/home

例三:将home.tar.gz解压并还原。

#tarxzvfhome.tar.gz

例四:查看home.tar中的文件目录。

#tartvfhome.tar

3、cpio命令。

cpio命令也是通过拷贝的方式实现文件或文件系统的备份与恢复。它与tar的不同之处在于它能通过重定向以及管道操作,可以将文件发送给外部设备。

例一:通过cpio命令将/etc下的所有文件都备份到/tmp/etc.cpio文件中。

#find/etc-typef|cpio-o>/tmp/etc.cpio

例二:查看备份文件内容。

#cpio-idvt</tmp/etc.cpio

例三:利用cpio命令将系统上的所有文件备份至磁带机中。

#find/-print|cpio-covB>/dev/st0

例四:解压备份文件。

#cpio-iduv</tmp/etc.cpio

4、dump和restore命令。

dump与restore命令用来实现在Linux下的增量备份与差异备份。

例一:计算备份/dev/hda1所需要的磁盘空间。

#dump-0S/dev/sda1

例二:将/dev/sda1备份至/tmp/sda_dump中。

dump-0u-f/tmp/sda_dump/dev/sda1

例三:将整个文件系统备份至磁带机nst0上。

#dump0f/dev/nst0/

例四:使用restore检查备份文件内容。

#restore-tf/tmp/sda_dump

例五:从磁带机nst0上恢复这个文件系统。

#restore–rf/dev/nst0

例六:从磁带机nst0上只恢复/etc目录。

restore-xf/dev/nst0/etc

【参考文献】

1、LinuxManPages,http://linuxmanpages.com/