I haven't followed this thread, but thought I would post my backup script in case it is useful to someone.
It uses rsync to rotate the backup, and it keeps the disk space down because files that remain the same though the rotations are hard links to the same physical space on the disk. This allows you to have a 7 day rotation, while the disk space used is kept to the sum of the data and the change over the last 7 days.
schu
The list stripped my code, how annoying...
WATCH FOR LINE WRAP!!!
#!/bin/bash
#
# Schu's backup rotation script modified from http://www.mikerubel.org/computers/rsync_snapshots/
#
# Dirs in the includes file are appended to the backupsource and backed up. So if /etc/rotateBackup.includes
# contains 'var' on a line and the backup source is '/' then /var will be backed up.
#
# user changable stuff BACKUPSOURCE=/ BACKUPDEST=/backup EXCLUDES=/etc/rotateBackup.excludes INCLUDES=/etc/rotateBackup.includes
# make sure we're running as root
if (( `id -u` != 0 )); then { echo "Sorry, must be root. Exiting..."; exit; } fi
# if the excludes file does exist then touch it if [ ! -f $EXCLUDES ]; then touch $EXCLUDES fi
# if the includes file does exist then touch it if [ ! -f $INCLUDES ]; then touch $INCLUDES fi
# now rotate snapshots
# step 1: delete the oldest snapshot, if it exists: if [ -d $BACKUPDEST/backup.6 ]; then rm -rf $BACKUPDEST/backup.6 fi
# step 2: shift the middle snapshots(s) back by one, if they exist if [ -d $BACKUPDEST/backup.5 ]; then mv $BACKUPDEST/backup.5 $BACKUPDEST/backup.6 fi;
if [ -d $BACKUPDEST/backup.4 ]; then mv $BACKUPDEST/backup.4 $BACKUPDEST/backup.5 fi;
if [ -d $BACKUPDEST/backup.3 ]; then mv $BACKUPDEST/backup.3 $BACKUPDEST/backup.4 fi;
if [ -d $BACKUPDEST/backup.2 ]; then mv $BACKUPDEST/backup.2 $BACKUPDEST/backup.3 fi;
if [ -d $BACKUPDEST/backup.1 ]; then mv $BACKUPDEST/backup.1 $BACKUPDEST/backup.2 fi
# step 3: make a hard-link-only (except for dirs) copy of the latest snapshot,
# if that exists
if [ -d $BACKUPDEST/backup.0 ]; then
cp -al $BACKUPDEST/backup.0 $BACKUPDEST/backup.1
fi;
# step 4: rsync from the system into the latest snapshot (notice that
# rsync behaves like cp --remove-destination by default, so the destination
# is unlinked first. If it were not so, this would copy over the other
# snapshot(s) too!
rsync -va -r --delete --delete-excluded --files-from="$INCLUDES" --exclude-from="$EXCLUDES" $BACKUPSOURCE/ $BACKUPDEST/backup.0
# step 5: update the mtime of hourly.0 to reflect the snapshot time touch $BACKUPDEST/backup.0 _______________________________________________ mythtv-users mailing list [email protected] http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users
