#!/bin/bash
VERSION="$Id: backup.sh,v 1.4 2011/06/17 16:17:17 nick Exp $"
REMOTE="nick@demandred.dyndns.org"
OPTIONS="-avxz -e ssh --delete"
LOGDIR=/home/backup/logs
DATE=`date +%Y%m%d`
DEMANDRED_DIRS=( /home/nick/database-backup.dump.gz /home/nick/database-backup.dump.yesterday.gz /home/nick/DroidBackups /home/cvs /home/nick/bbs /home/nick/notes /home/httpd /home/nick/Documents /home/nick/mail /home/nick/mail-backup )
WINSHARE_DIRS=( /home/winshare/Documents /home/winshare/Pictures /home/winshare/Receipts "/home/winshare/Shared Docs" /home/winshare/Backgrounds )
LANFEAR_DIRS=(/home/backup/systems/lanfear/home/nick/Documents /home/backup/systems/lanfear/home/nick/Receipts "/home/backup/systems/lanfear/home/nick/Nick\'s Pictures" /home/backup/systems/lanfear/home/nick/projects /home/backup/systems/lanfear/home/nick/notes)
[ -d $LOGDIR ] || mkdir -p $LOGDIR
cd /home/backup/backups
SAVEIFS=$IFS
for bdir in demandred winshare lanfear;
do
IFS=$(echo -en "\n\b")
[ "$bdir" == "demandred" ] && DIRS=(${DEMANDRED_DIRS[@]})
[ "$bdir" == "winshare" ] && DIRS=(${WINSHARE_DIRS[@]})
[ "$bdir" == "lanfear" ] && DIRS=(${LANFEAR_DIRS[@]})
mkdir -p $bdir
cd $bdir
for DIR in "${DIRS[@]}"; do
/usr/bin/rsync $OPTIONS $REMOTE:$DIR . >> $LOGDIR/backup-$DATE.log 2>&1
done
cd - > /dev/null 2>&1
done
IFS=$SAVEIFS
##
## Compress logs after 5 days and delete logs after 6 months
##
find $LOGDIR -type f -name \*.gz -mtime +180 -exec rm -f {} \;
find $LOGDIR -type f -name \*.log -mtime +5 -exec gzip -9 {} \;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>