Ich liebe dirvish
Dirvish ist Backup-System, das auf Rsync basiert. Vorteil des Programmes ist, dass sich automatisiert Backups anlegen und nach dem Rotationsprinzip die ältesten Sicherungen wieder löschen lassen. Auf unveränderte Dateien zum Vortags-Backup werden nur Hardlinks angelegt, so reduzieren sich sowohl Traffic als auch der verbrauchte Plattenplatz.
So richte ich denn auch dirvish ein, wo immer Remote-Backups benötigt werden. Das Einrichten des Backup-Systems ist eigentlich sehr einfach, ich beschreibe hier die Einrichtung unter Debian Etch.
Dirvish arbeitet mit Banks und Vaults. Eine “Bank” ist das Zielverzeichnis, in dem Sicherungen abgelegt werden sollen, ein “Vault” (Tresor) bezeichnet einen Bereich, der in der “Bank” gesichert werden soll.
Dirvish ist ein sog. Pull-Backup-System. D.h., der Rechner, auf dem die Backups gespeichert werden sollen, zieht sich die zu sichernden Dateien vom Quellrechner.
Auf dem Quellrechner muss nur rsync installiert sein:
# apt-get install rsync
Der Rechner, auf dem die Backups landen sollen, braucht zusätzlich noch das Paket “dirvish”:
# apt-get install dirvish
Die Installation erfolgt nun in drei Schritten:
Schritt 1: Dirvish-Konfigurationsdatei anlegen
Eine /etc/dirvish/master.conf könnte beispielsweise so aussehen:
bank:
/var/meine_backups/quellrechner
exclude:
lost+found/
core
*~
.nfs*
cache/apt/archives
backups
cache/man
tmp
Runall:
quellrechner_var 22:00
expire-default: +7 days
Zuerst wird die Bank eingerichtet, als das Verzeichnis, in das die zu sichernden Dateien abgelegt werden sollen (hier: /var/backups/quellrechner).
Unter “exclude:” werden die Verzeichnisse und Dateien eingetragen, die nicht mitgesichert werden sollen.
Unter “Runall:” werden die zu sichernden Vaults sowie die Uhrzeiten eingetragen, wann diese gesichert werden sollen, aufgeführt.
“expire-default: +7 days” schließlich bedeutet, wie unschwer zu erraten, dass alle Backups, die älter als 7 Tage sind, gelöscht werden sollen.
$ man dirvish.conf enthält die komplette Liste der Optionen, die in der master.conf benutzt werden können.
Konfiguration der Vaults
Die Konfiguration der Vaults erfolgt durch Konfigurationsdateien unterhalb der in der master.conf definierten Bank.
Der in der o.a. master.conf definierte Vault “quellrechner_var” wird beispielsweise so konfiguriert:
In der Bank ein Unterverzeichnis für den Vault, sowie darin enthalten ein Verzeichnis dirvish anlegen:
# mkdir -p /var/meine_backups/quellrechner/quellrechner_var/dirvish
In diesem Verzeichnis wird noch eine Datei default.conf benötigt, in der die Einstellungen für den Vault eingetragen werden, beispielsweise wie folgt:
client: quellrechner tree: /var xdev: true index: gzip image-default: %Y%m%d
Der Client ist logischwerweise der Rechner, von dem die zu sichernden Daten stammen. Unter “tree:” wird das Verzeichnis eingetragen, für das das Backup durchgeführt werden soll.
Mit “xdev: true” wird das Backup auf das Dateisystem unter “tree” beschränkt.
Mit “index: gzip” wird festgelegt, dass der Index, der bei der Sicherung angelegt wird, abschließend mit gzip komprimiert werden soll.
Und die hinter “image-default” eingegebene Zeichenfolge bestimmt den Aufbau des Namen des Sicherungsverzeichnisses im Vault.
Das war’s eigentlich auch schon. Jetzt muss nur noch sichergestellt sein, dass vom Backuprechner aus ein SSH-Zugriff auf den Quellrechner möglich ist.
Also einen “apt-get install ssh” auf dem Quell- und dem Backuprechner aufgerufen, und (eigentlich) fertig.
Eine initiale Sicherung mit:
dirvish --vault quellrechner_var --init
sollte jetzt schon funktionieren.
Schritt 3:
Und um das Backup über ssh automatisieren zu können, muss auch die SSH-Verbindung ohne Passworteingabe funktionieren, also über eine Publickey-Anmeldung funktionieren.
Wie das funktioniert, beschreibe ich unter Pubkey-Authentifierzung bei SSH.
Und abschließend, wenn die automatische Sicherung funktioniert, kann dies über die Crontab auch regelmäßig angestoßen werden.
Der Eintrag in die Crontab des Benutzers auf dem Backup-Rechner sieht so aus:
0 2 * * * /etc/dirvish/dirvish-cronjob
So werden die Backups über Dirvish vom System jeden morgen um 2 Uhr angestoßen.
Ein kleiner Hinweis zum Schluss:
Sollte bei dem initialen Backup-Versuch eine Fehlermeldung auftreten, wie:
dirvish quellrechner_var:default error (12) -- broken pipe dirvish error: branch /var/meine_backups/quellrechner/ _ quellrechner_var:default image 20060103 failed
ist wahrscheinlichauf dem Quellrechner rsync nicht installiert
14. August 2006 um 07:15
STart – Ausführen – d:\setup.exe
Next, Next, finish.
Start – Programme – Veritas BackupExec –
14. August 2006 um 15:47
Das ersetzt gerade einmal:
# apt-get install dirvish rsync
Gruss
Stefan
23. März 2007 um 15:35
Danke für diesen hilfreichen Tip. Hatte auch desöfteren Probleme mit rsync. Werd nun mal dirvish ausprobieren.
27. März 2007 um 10:13
@repa(bahn)
Veritas… Kostenpunkt 505.75 EUR.
Danke, Setzen…
13. April 2007 um 08:46
Danke für das HowTo, ich hatte es auch geschafft, allerdings fehlt, meiner Meinung nach, ein wichtiger Punkt. Wenn man das ganze automatisieren möchte, sollte außer der Erzeugung des Schlüssels auch bei default.conf folgende Zeile hinzufügen:
rsh: ssh -i /root/.ssh/meinkey
Ich habe gestern mehrere Stunden rumprobiert, bis ich es endlich herausgefunden habe habe.
1. Mai 2007 um 10:18
@Sven:
Hallo Sven,
diese instellungen fuer die SSH-verbindung werden ueblicherweise in einer config Datei in deinem .ssh Verzeichnis angelegt. Dort werden alle Angaben zur Identity Datei, Port usw. eingetragen.
Danach ist es möglich eine SSH-Verbindung nur mit “sss hostname” aufzubauen.
Der Vorteil: Dirvish und alle anderen programme die die Verbindung nutzen brauchen nicht mehr mit Angaben wie in deinem Beispiel versehen werden.
Die meisten “Howto” Schreiben setzen manchmal voraus das man das weiss.
. Muss man ja auch verstehen.
Gruss
1. Mai 2007 um 10:22
Was ich nicht verstehe:
im Blog steht im Beispiel ein Crontab um 02:00 Uhr der Dirvish startet.
In der Master.conf steht unter Runall als Uhrzeit 22:00.
Falls mir das mal einer erklaeren koennte?
Ist es egal was ich in den cronjob schreibe wenn das Backup sowieso um 22:00 startet?
18. Juni 2007 um 10:37
@Alex99:
Nun das ist ganz einfach erklärt, wenn ich mich recht an das Manual erinnere:
Der Job startet “nur” als Cronjob konfiguriert automatisch. Der Runall-Eintrag in der config hat da keinen EInfluss drauf. Nun kannst du aber mit dieser Einstellung die Uhrzeit deines Backups einstellen/verändern , was reine Kosmetik ist. Bem Beispiel oben sieht dies dann so aus:
Der Cronjob startet den Job zb. am Freitag um 02:00 Uhr, das Backupverzeichniss wird aber mit 22:00 erstellt. Somit musst du nicht immer eine Datumsumrechnung machen, da das Backup um 02:00 Uhr am Freitagmorgen ja eigentlich das Backup des Donnerstag ist! Klar?
14. Dezember 2008 um 23:35
[...] vom Desktop, als auch von den von mir verwalteten Servern – setze ich rsync in Verbindung mit Dirvish [...]