Versioniertes Backup mit SVN
Mit Hilfe von SVN und einem kleinen Script, welches man via Cron ausführt, kann man sich ein versioniertes Backup anlegen lassen. Bei Bedarf kann man sich jede Änderung, die zwischen zwei Scriptaufrufen gemacht wurde, wiederherstellen lassen.
mkdir /var/backup_svn svnadmin create /var/backup_svn svn import /var/www file:///var/backup_svn mv /var/www /var/_www mkdir /var/www svn checkout file:///var/backup_svn /var/www
Der Ordner /var/www soll gesichert werden. Er wurde in das SVN Repo importiert und gesichert. Danach wurde eine Arbeitskopie von dem Repo angelegt. Diese hat den vorherigen /var/www Ordner abgelöst.
Im diesem Ordner kann nun wie gewohnt weiter gearbeitet werden. Die einzige Änderung sind die .svn/ Ordner, die sich nun in der kompletten Verzeichnisstruktur verteilt haben. Diese dürfen aber auf keinen Fall gelöscht werden!
Folgendes Script kümmert sich nun um den Backup:
#!/bin/sh TMP_FILE="/tmp/svn-status.tmp" WCOPY="/var/www/" svn status $WCOPY > $TMP_FILE grep ^\? < $TMP_FILE | cut -c 8- | xargs svn add grep ^\! < $TMP_FILE | cut -c 8- | xargs svn delete svn commit -m "$( date +"%Y-%m-%d %H:%M:%S" ) - Automatic snapshot" $WCOPY rm $TMP_FILE exit 0
Das Script sucht sich alle neu erstellten und gelöschten Dateien und flaggt sie entsprechend. Danach werden alle Änderungen an das SVN Repository übergeben.
Das Script kann zum Beispiel via Cron alle 15 oder 30 Minuten aufgerufen werden. Geht dann beim Arbeiten mal etwas schief, kann man relativ leicht alte Versionen einer Datei wiederherstellen.
Eine detailierte Anleitung wird es auf sim4000.de geben, wenn ich dazu Zeit finde.
via geek-blog.de, askcolddrink
Verwandte Beiträge
- Minecraft Management GUI over SSH (Linux, Server, Shellscripting)
- SVN Arbeitskopie reparieren (Linux, Programmieren, SVN)
- Massenverkleinerung von Bildern im Linux Terminal (Linux, Programmieren, Shellscripting)
- json in PHP installieren (Linux, Programmieren, Server)
- Fail2Ban, Postfix und SASL Auth (Linux, Server)






