Skip to content
iphone 3G S

Konfigurationsbackups via SVN

Der Grundgedanke: Unix Systeme speichern Konfigurationen meist in Textdateien. Subversion ist ein weit verbreitetes Dateiversionisierungs Werkzeug, welches ausschließlich mit Textdateien arbeitet. SVN speichert jede Veränderung und ermöglicht es bequem jede Version bis zur Ersten abzurufen.
Falls am System Konfigurationen vorgenommen wurden, die sich im Nachhinein als schlecht herausstellen, können diese mittels SVN leicht identifiiert und rückgängig gemacht werden.

1. Vorbereiten des SVN Severs
Zu erst benötigt man ein Reposentory in dem die entsprechenden Daten gesichert werden. Ich nutze hierzu einen Server(appleDebian) im lokalen Netzwerk.

root@appleDebian:~$ svnadmin create /home/svnserver/myBackups

Nun gehen wir auf den Client (workstation) und richten unser Reposentory ein:

root@workstation:~$ svn checkout svn://appleDebian/myBackups
root@workstation:~$ cd myBackup
root@workstation:~/myBackups$ mkdir etc
root@workstation:~/myBackups$ svn add etc
root@workstation:~/myBackups$ svn ci

Ich möchte mir die Systemkonfiguration (/etc) sichern. Dazu lege ich ein leeres Verzeichniss an und füge es mittels svn add etc kraut dem Reposentory hinzu. svn ci (für comitt) macht die Anderungen wirksam, das heisst die Änderungen werden auf den Server übertragen.

2. Das erste Backup
Nun wechsel ich in dass zu sichernde Verzeichnis. Hier erst einmal /etc und mache einen checkout.

root@workstation:~$ cd /etc
root@workstation:/etc$ svn co svn://appleDebian/myBackups/etc .

Anschliessend fügt man mit
root@workstation:/etc$ svn add *
root@workstation:/etc$ svn ci

die gesamten Systemkonfigurationsdateien hinzu.

3. Backups automatisieren
Nun muss das Ganze noch automatisiert damit jeder Änderung Dokumentiert wird.

Spielt jemand viel herum an seinem System sollte er die Backups vielleicht sogar manuell ausführen oder einen Cronjob einrichten.
Bei normaler Nutzung sprich bei einem reinen Anwender sollte es ausreichend sein die Backups beim Bootvorgang durchzuführen.

Hier zu trage ich die nötigen befehle in die /etc/rc.local ein:
svn ci -m " rc.local: kraut - Backup" /home/kraut/
Praktisch ist, dass nach dem ersten Commit keine Zugangsdaten mehr abgefragt werden, da diese in der Konfigurationsdatei von svn im $HOME des Benutzers(root) gespeichert werden.

-m steht für message sprich man muss eine Kommentar zum Commit angeben. Ohne die Option -m würde eine Benutzereingabe erwartet was den Bootvorgang zum Stillstand bringen könnte.

4. Backups einspielen

Mit svn info erhält man Informationen zur aktuellen version.
Um sich nicht die aktuelle Version des Reposentories zu holen(diese wird wahrschl die „defekte“ sein) kann man mit der Option -r bestimmen welche Version man auscheckt bzw. updated.
Die aktuelle „Arbeitskopie“ auf Version 9 zurück setzten:
root@workstation:/etc$svn update -r 9
–revision kann auch bei svn checkout verwendet werden.
Möchte man sich Informationen über die einzelnen Konfigurationsdateien anschauen:
kraut@workstation:/etc$ svn list -v svn://appleDebian/myBackups/etc
Natürlich könnte man sich einer der zahlreichen grafischen Programme bedienen wie Subclipse oder dem Nautilus svn Plugin. Jedoch wird man sich dann schwer tun wenn das System nicht mehr hochfährt und man nur den abgesicherten Modus ohne X11 zur Verfügung hat. Deshalb empfehle ich sich mit dem Konsolen Programm svn ausseinanderzusetzen auch wenn es anfangs vielleicht etwas mühsam scheint wenn man nur die komfortablen GUIs gewohnt ist. Spätestens im Fall des Falles wirst du davon profitieren.

 


Mobile Navigation von NAVIGON

One Trackback/Pingback

  1. Anonymous on 27-Jan-08 at 8:05 pm

    Automatische Konfigurationsbackup (/etc) via SVN…

    Es wird kurz ein Beispiel gegeben wie Backups mittels SVN gemacht werden knnen….

Eintrag kommentieren

Deine Email-Adresse wird weder veröffentlicht noch an Dritte weitergegeben.
Pflichtfelder sind markiert *
*
*