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