本次备份思路为,每日留有快照,每周二使用Tarball备份于其它分区,保留上一周纪录,同时Log写入/var/log/snap_backup_log中。
#!/bin/sh
#############################################
#Tuesday tar backup other day snapshot
#design by leocraft
#leocraft[AT]Gmail.com
##############################################
log_file=/var/log/snap_backup_log
now=`date`;
today=`date +%y%m%d`;
lastweek=`date -v -7d +%y%m%d`;
week=`date +%w`
backup_wday=2
mount -o rw /dev/da1s1d /var/backup
for target in www sql
do
souce_dir=/var/"$target"
mirror_dir=/mnt/"$target"
snap_file=/var/"$target"/"$target"_"$today"_snap
last_snap_file=/var/"target"/"$target"_"$lastweek"_snap
last_tarball=/var/backup/backup_"$target"_"$lastweek".tar
this_tarball=/var/backup/backup_"$target"_"$today".tar
log_format_tarball="$now I backup $target tarball at $this_tarball"
log_format_snapshot="$now I snapshot the $target at $snap_file"
mount -u -o snapshot $snap_file $souce_dir
echo $log_format_snapshot >> $log_file
if [ $week = $backup_wday ]
then
mdconfig -a -t vnode -f $snap_file -u 1
mount -r /dev/md1 $mirror_dir
if [ -f $last_tarball ]
then
rm $last_tarball
fi
cd $mirror_dir
tar -cf $this_tarball *
cd ..
umount $mirror_dir
mdconfig -d -u 1
echo $log_format_tarball >> $log_file
fi
if [ -f $last_snap_file ]
then
rm $last_snap_file
fi
done
umount /var/backup
评论内容
发表评论