循環增量備份

#!/bin/bash
###################################
# $id: backup 379 2012-04-02 08:43:42z netkiller $
# author: [email protected]
# home: http://netkiller.github.com
backup_dir=/backup/www
####################################
logfile='/var/tmp/test.log'
rsync="rsync"
week=$(date -u +%a)
rsync_opts="-auz --delete --log-file=$logfile"
test ! -w $backup_dir && echo "error: $backup_dir is un-writeable." && exit 0
umask 0077
for domain in $(ls -1 /www)
do
test ! -d "$backup_dir/$domain" && mkdir -p "$backup_dir/$domain"
echo "$domain:"
for host in $(ls -1 /www/$domain)
do
echo " - $host"
backup_dir=$backup_dir/$domain/$host/$week
mkdir -p ${backup_dir}
$rsync $rsync_opts /www/$domain/$host/* $backup_dir
done
done
全備份

#number of copies
copies=30
tar='tar'
timepoint=$(date -u +%y-%m-%d)
tar_opts="zcf"
$tar $tar_opts $backup_dir/$domain/$host/$host.$timepoint.tgz /www/$domain/$host
find $backup_dir -type f -mtime +$copies -delete