Mały skrypt bash’a do wykonywania “gorącej kopii” wszystkich projektów w repozytorium SVN’a. Kopiowane są do innego katalog.

“Jak wiadomo ludzi dzielimy na tych co robię kopię bezpieczeństwa oraz na tych którzy jeszcze tego nie robią”.

#! /bin/bash
 
#
# Constans
#
REPOS_BASE="/srv/svn/repository"
BACKUP_DIR="/mnt/sdc1/_Backup/SVN"
SVNADMIN_CMD="/usr/bin/svnadmin"
 
#
# Backup all directory in repo dir
#
for repository in $REPOS_BASE/*
do
    reposBase=`basename $repository`
    date_string=`date "+%F"`
    backupName="$BACKUP_DIR/${date_string}_${reposBase}"
    [ -d "$backupName" ] && rm -rf $backupName/*
    mkdir -p "$backupName"
    "$SVNADMIN_CMD" hotcopy "$repository" "$backupName"
done
 
#
# Delete directory older than 7 days
#
find $BACKUP_DIR -mtime +7 -delete