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