Tra le operazioni di gestione ordinaria di un repository subversion rientra quella del backup.
Un modo può essere quello di effettuare un mirroring remoto del repository, come spiegato in un precedente articolo. Spesso però si vuole ottenere un backup in un archivio da poter trasferire su un supporto ottico o comunque da conservare.
E' possibile effettuare questa operazione di backup utilizzando il svnadmin hotcopy. In questo modo non sarà necessario mettere offline il repository prima di procedere con il backup.
Una volta copiato il repository, potremmo anche comprimerlo.
Queste operazioni sono riassunte nel seguente script di shell:
#!/bin/sh if [ -z "$2" ]; then echo "Usage: $0 <repository> <destination>" exit fi IN=$1 OUT=$2 OUT_ARCHIVE=$OUT.tar.bz2 echo "Backup repository svn ($IN) in corso..." TMPDIR=`mktemp -d /tmp/.svn-backup.XXXXXX` || exit 1 svnadmin hotcopy $IN $TMPDIR echo Compressione in corso... tar -cjpf $OUT_ARCHIVE -C $TMPDIR . rm -rf $TMPDIR echo Backup effettuato con successo
Se inserite i comandi appena descritti in un file che chiameremo svn-backup ai quali siano stati dati permessi di esecuzione (chmod a+x svn-backup) potrete effettuare un backup eseguendo:
svn-backup pathDelRepository fileDiDestinazione
otterrete in output il file:
fileDiDestinazione.tar.bz2
Il file .tar.bz2 è il backup da conservare.
Nota: il file di backup così creato non sarà necessariamente portabile tra diverse architetture hardware; è possibile effettuare un dump "portabile" utilizzando il comando
svnadmin dump /pathDelRepository > fileDiBackup