there is no place like ~

Title

The following script backs up a group of SVN repositories. It does so by creating a svn dump and zipping the result up. Backups older than 3 days get removed automatically.

#!/bin/sh
set -e

rootdir="/srv/svn"
dump_dir="$rootdir/dump"
repo_dir="$rootdir/repos"

svnadmin=/usr/bin/svnadmin


function delete_old_files {
        name="$1"
        find "$dump_dir" -name "$name-*.dump.bz2" \
                | sort | head -n -3 \
                | xargs --no-run-if-empty rm -f
}


date=`date --iso`
for repo in "$repo_dir"/*; do
        name=`basename $repo`
        delete_old_files "$name"
        $svnadmin dump --deltas --quiet "$repo" | \
                bzip2 --compress --stdout > "$dump_dir/$name-$date.dump.bz2"
done