欢迎 chinavb 加入本站!
 免费注册  用户登陆  汇款方式  汇款确认  产品报价  联系我们  帮助中心
加入收藏
设为首页
会员体系
申请VIP
网站首页 光盘超市 软件下载 技术文章 专题 用户中心 VIP会员 技术论坛 网站留言 娱乐中心 卓越资源
今天是:2009年01月08日 星期四  您现在位于: 首页 → 技术文章 → Linux环境下的基本...
   Linux环境下的基本备份方法
作者:knight  出处:gdlc.cublog.cn  更新时间: 2007年01月20日 
 现在我们已经讨论了如何调用磁带设备,并且我们已经知道如何决定使用回卷或非回卷设备。但是如何实现将系统的文件从系统中搬移到磁带设备上呢?这是各种备份工具的功能了。所有的Linux发布都提供了所有备份工具的祖先:tar(当然实际上dbppt和bppt, a/k/a dump and restor,才是Unix系统的备份工具的亚当)。tar命令在Unix Version 7中出现的。该命令的名字来自于"Tape ARchiver"。该命令被设计为能非常容易的实现将数据从系统备份到磁带中或者从磁带中恢复数据。 
  tar命令的基本语法为:

  tar -mode -option [files] 

  这里c表示创建(backup),-x提取(restore)或者-t内容列表(list),选项包括如下元素:如-v表示详细输出,-f file表示目的(创建模式)或源(提取或者列表模式),更详细的信息,请看系统tar命令的手册(man tar)。 

  使用tar做最简单的备份如下所示: 

  tar -cvf /dev/st0 
  lost+found/ 
  var/ 
  var/adm/ 
  var/adm/LST/ 
  var/adm/LST/log/ 
  var/adm/LST/log/debug 
  var/adm/LST/log/history 
  var/adm/LST/log/cmd.trace 
  var/adm/LST/log/install.success 
  var/adm/LST/log/postin.failed 
  var/adm/LST/log/install.failed 
  var/adm/LST/analyse/ 
  var/adm/LST/analyse/boot.img 
  var/adm/LST/analyse/boot.msg 
  var/adm/LST/analyse/boot.info 
  var/adm/LST/analyse/boot.diag 
  var/adm/LST/analyse/boot.params 
  var/adm/LST/database/ 
  var/spool/ 
  [...] 

  该命令的c选项表示创建一个新的备份(c),并且使用详细模式(v),并且将整个系统备份输出到/dev/st0(f)。在这种情况下,tar操作将打开/dev/st0文件(设备),将数据流以tar的数据格式的写入到那个打开的文件,并且在所有的数据被写入以后,关闭文件。因为我们这里选择了回卷设备/dev/st0,文件(存储介质)将使设备驱动在tar关闭文件以后回卷磁带。 

  下一步将是验证数据被正确的写入到磁带中。不幸的是,Linux环境下的tar命令仅仅提供了一种比较模式的验证手段-磁带内容被重新读入,并和原始文件逐字节进行比较。然而,这仍然比没有验证要好很多。因为在进行恢复时发现磁带中有坏数据是一个非常糟糕的事情。

  在恢复结束并且被验证以后,一切并没有结束,因为系统中的数据是不断变化的,一个保持不断变化的系统的备份的方法是持续进行定期的对发生变化的数据进行备份。有很多方法可以实现这样的备份,但是最方便的是增量(incremental)和差分(differential)备份。 

  这两种方法的备份方法都是依赖于时间,或者是基于上一次备份(增量),或者基于上一次完全备份。增量备份仅仅备份那些上次备份以来修改过的数据,有时候也被称为常规备份;而差分备份则仅仅备份上次完全备份以来变化过的文件。下表是几种备份方案的特点比较: 

  5、完全备份 增量备份 差分备份 

  空间使用 Most Least Less than Full 
  备份速度 Slowest Fastest Faster than Full 
  恢复速度 Fastest Slowest Faster than Incremental 

  差分备份可能会备份增量备份忽略的数据,但是差分备份恢复速度要比增量快,因为它仅仅需要上一次完全备份和最近的一次差分备份;而增量备份则需要从上次完全备份及以来的每一次增量备份。 

  为了使用者写方法进行备份,需要使用tar命令的-N或--newer选项,后面跟一个时间,时间应该是通常的日历格式(例如:03/12/199 = March 12th, 1999)。 

  tar -cvf /dev/st0 --newer 03/12/1999 / 

  该命令将备份系统中所有在March 12th, 1999及其以后被修改的文件。 
我下面提供了一个简单的脚本文件来作为一个同时实现完全和差分备份的自动化模型。在使用该脚本以前,请注意检查脚本头定义的环境变量以满足自己的需要。 

#!/bin/sh 
  # 
  ####################################### 
  # 
  # TAR backup script to cover daily and weekly backups on one tape. 
  # Generic UNIX version - edit variables as required 
  # 
  # For this to work, it MUST be started on a Monday! 
  # 
  # Copyright (c) 1999, Tim Jones 
  # Permission granted for use/modification 
  # 
  # Tim Jones/Linux Magazine provide this shell script with no warranty 
  # (implied or otherwise) 
  # 
  ######################################## 

  DOW=`date +%w` 
  DATE=`date +%D` 
  DAY=`date +%A` 
  DEVICE="MY REWIND TAPE" # Rewinding tape drive 
  NDEVICE="MY NO_REWIND TAPE" # non-rewinding tape drive 
  REWIND="mt -f $DEVICE rewind" 
  EOD="mt -f $NDEVICE eod" 
  FSF="mt -f $NDEVICE fsf" 
  MAILLIST="root" # list of users to receive backup notice 

  if [ $DOW = "6" ] 
  then 
  # This is Saturday, so append and write the whole system! 
  $EOD 
  echo $DATE > /tmp/.LASTFULL 
  tar -cvvf $NDEVICE / >/tmp/backup.txt 
  $REWIND 
  $FSF 5 
  tar -dvf $NDEVICE >> /tmp/backup.txt 
  $REWIND 
  cp /tmp/.LASTFULL /etc/.LASTFULL 
  else 
  # this is not Saturday 
  case $DOW in 
  0) 
  # it's Sunday - nothing to do 
  exit 0 
  ;; 
  1) 
  # Monday, Let the tape rewind for the difference verification 
  echo $DATE > /tmp/.LASTINC 
  tar -cvvf $DEVICE --newer `cat /etc/.LASTFULL` / >/tmp/backup.txt 
  cp /tmp/.LASTINC /etc/.LASTINC 
  ;; 
  *) 
  # Other Days, must rewind manually and Inspect, -i 
  $EOD 
  echo $DATE >/tmp/.LASTINC 
  tar -cvvf $NDEVICE --newer `cat /etc/.LASTINC` / >/tmp/backup 
  $REWIND 
  $FSF `expr $DOW - 1` 
  echo "************ Verifying ${DAY}'s backup" >> /tmp/backup.txt 
  tar --dvf $NDEVICE >> /tmp/backup.txt 
  cp /tmp/.LASTINC /etc/.LASTINC 
  $REWIND 
  esac 
  fi 
  mail $MAILLIST < /tmp/backup.txt 
  rm -f /tmp/backup.txt 
  # END OF script 
 
 
 (本文已被浏览 1505 次)
 发布人:sdccf
 → 推荐给我的好友
上篇文章:squid日志分析软件sarg的安装和使用
下篇文章:Linux服务器备份和恢复技巧
 相关文章:
Windows到Linux之旅(8)---备份与恢复 Linux操作系统备份恢复技术
Linux操作系统中备份恢复技术的应用

相关搜索
查看百度中关于Linux环境下的基本备份方法的更多内容
查看google中关于Linux环境下的基本备份方法的更多内容
   文章分类
操作系统 |
SCO_UNIX  Sun_Solaris  IBM_AIX  HP_UX  Linux  BSD  Tru64_UNIX 
通用UNIX知识  Windows  Minix 
程序设计 |
Shell编程  C/C++  汇编  PHP  JAVA  Perl  Python 
ASP/HTML  XML  中间件 
数据库 |
Oracle  Informix  Sybase  Fox  DB2  SQL  MySQL 
PostgreSQL 
网络应用 |
网络应用 
计算机硬件 |
计算机主机  打印机  路由器  交换机  终端  磁带机  MO 
刻录机  终端服务器  调制解调器 
   文章评论
  → 评论内容 (点击查看)   共0条评论,每页显示5条评论   浏览所有评论
(没有相关评论)
  → 发表我的评论
您的姓名: 您的Email:
评论内容:
250字内
发表评论:      发表评论须知 →
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  • 关于我们 ┋  网站留言 ┋  网站地图 ┋  友情链接 ┋  与我在线 ┋  汇款确认 ┋  管理 ┋  TOP
    Unix爱好者家园  http://www.unix-cd.com/
    联系我们:sdccf@163.com
    腾讯QQ: 7644599
    备案序号:鲁ICP备05000455号
    Copyright (c) 2001-2008 Unix-cd.com. All Rights Reserved.