.

Remote-Backups mit dirvish |

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:

  • Die Dirvish-Konfigurationsdatei /etc/dirvish/master.conf muss angelegt werden
  • Die Vaults müssen konfiguriert werden
  • Die SSH-Verbindung zum Quelldatenrechner muss automatisiert eingerichtet werden
  • 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 ;)

    9 Antworten zu 'Remote-Backups mit dirvish'
    1. repa:

      STart – Ausführen – d:\setup.exe

      Next, Next, finish.

      Start – Programme – Veritas BackupExec –

      :D

    2. Stefan:

      Das ersetzt gerade einmal:

      # apt-get install dirvish rsync

      ;)

      Gruss
      Stefan

    3. IndustryStock:

      Danke für diesen hilfreichen Tip. Hatte auch desöfteren Probleme mit rsync. Werd nun mal dirvish ausprobieren.

    4. GenesiX:

      @repa(bahn)
      Veritas… Kostenpunkt 505.75 EUR.
      Danke, Setzen…

    5. Sven:

      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.

    6. Alex99:

      @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

    7. Alex99:

      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?

    8. Stefan:

      @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?

    9. Yet another Linux Blog » Blog Archive » Back in Time - Rsync in grafisch:

      [...] vom Desktop, als auch von den von mir verwalteten Servern – setze ich rsync in Verbindung mit Dirvish [...]

    Eine Antwort eintragen

    *benötigt

    *benötigt / nicht sichtbar

    Kalender
    August 2006
    M D M D F S S
     123456
    78910111213
    14151617181920
    21222324252627
    28293031EC
    Ereignisse
      • Keine Termine.
    Kategorien
    Archiv
    Wichtiges!?

    .