Backup eines SVN-Servers mit svnsync
7. April 2011
Manchmal ist es ganz nützlich, wenn man Backups macht – keine Frage – jedoch sollte man auch mitberücksichtigten, dass das Medium, auf welchem die Backups liegen verschwinden können. Worst-Cases: Es brennt, jemand bricht in die Wohnung ein etc… – in einem solchen Fall wäre es ganz nett, wenn man noch an einer anderen Location ein Backup hat ![]()
Ich möchte hiermit einen Weg aufzeigen, mit welchem man sein SVN-Server an eine andere Location sichern kann:
- Auf dem Server der anderen Location ein neues Repository anlegen:
$ svnadmin create dest - Um mit svnsync ein Repository zu synchronisieren muss man noch eine neue Hook anlegen, die es dem svnsync-User erlaubt das Repository zu synchronisieren:
$ cat < dest/hooks/pre-revprop-change
#!/bin/sh
USER="$3"
if [ "$USER" = "svnsync" ]; then exit 0; fi
echo "Only the svnsync user can change revprops" >&2
exit 1
EOF
$ chmod +x dest/hooks/pre-revprop-change - Nun kann man die initiale Synchronisation anstoßen:
$ svnsync init file://`pwd`/dest \ svn+ssh://sourcesvnserver/source/repos
Copied properties for revision 0
$ - Danach kann das Repository einmal komplett synchronisiert werden:
$ svnsync sync file://`pwd`/dest
Committed revision 1.
Copied properties for revision 1.
Committed revision 2.
Copied properties for revision 2.
Committed revision 3.
Copied properties for revision 3.
...
Kurze Notiz am Rande: In diesem Beispiel wird svn+ssh genutzt. Hierzu ist es angebracht, sich mit einem Key-File anzumelden. Des Weiteren sollte noch ein Cron-Job eingerichtet werden, um in einem bestimmten Zeitabschnitt das Repository zu synchronisieren.
Kommentar schreiben