您现在的位置是:首页 > IT基础架构 > 计算存储 >

Linux系统下数据备份与恢复

2013-08-23 15:15:24作者:宋刚 来源:

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

  1 为什么要备份

  任何系统都有可能遭遇到一些无法考虑到的失效,比如人为误操作,电气故障,以及自然界不可抗力等等,在这些情况威胁下,数据备份就成为非常重要和必要的安全措施。

  2 备份的策略

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

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

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

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

  3 备份工具命令

  3.1 dd命令

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

  例一:磁盘备份。

  # dd if=/dev/sda of=/dev/sdb #磁盘sda复制到磁盘sdb

  # dd if=/dev/sda of=/path/image #将磁盘sda复制到路径为path的image文件

  例二:磁盘恢复。

  # dd if=/path/image of=/dev/sda #将path路径下的image文件恢复到sda磁盘

  例三:制作光盘镜像。

  # dd if=/dev/cdrom of=/tmp/cdrom.iso #制作cdrom光盘镜像

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

  # dd if=/dev/sda of=/path/to/image count=1 bs=512#MBR位于磁盘开始之后的512字节

  # dd if=/path/to/image of=/dev/sda

  3.2 tar命令

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

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

  # tar cvf home.tar /home

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

  # tar czvf home.tar.gz /home

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

  # tar xzvf home.tar.gz

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

  # tar tvf home.tar

  3.3 cpio命令

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

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

  # find /etc -type f | cpio -o > /tmp/etc.cpio

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

  # cpio -idvt < /tmp/etc.cpio

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

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

  例四:解压备份文件。

  # cpio -iduv < /tmp/etc.cpio

  3.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上。

  # dump 0f /dev/nst0 /

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

  # restore -tf /tmp/sda_dump

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

  # restore –rf /dev/nst0

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

  restore -xf /dev/nst0 /etc


(本文不涉密)
责任编辑:

站点信息

  • 运营主体:中国信息化周报
  • 商务合作:赵瑞华 010-88559646
  • 微信公众号:扫描二维码,关注我们