文章详情

完全和差分备份的自动化模型

  下面提供了一个简单的脚本文件来作为一个同时实现完全和差分备份的自动化模型。在使用该脚本以前,请注意检查脚本头定义的环境变量以满足自己的需要。

  #!/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

博聚网