Dirvish: Unterschied zwischen den Versionen

Aus mxlinuxusers.de
Zur Navigation springen Zur Suche springen
K
Markierung: Durch einen Tor-Ausgangsknoten
Markierung: Durch einen Tor-Ausgangsknoten
Zeile 14: Zeile 14:
 
Die Konfiguration von dirvish erfolgt in mehreren Dateien, einmal in /etc/dirvish/master.conf als globaler Konfigurationsdatei und dann noch für jedes gewünschte Backupprofil eine eigene Konfigurationsdatei. Meistens kommt man aber mit einem Backupprofil aus.
 
Die Konfiguration von dirvish erfolgt in mehreren Dateien, einmal in /etc/dirvish/master.conf als globaler Konfigurationsdatei und dann noch für jedes gewünschte Backupprofil eine eigene Konfigurationsdatei. Meistens kommt man aber mit einem Backupprofil aus.
 
=== master.conf ===
 
=== master.conf ===
  +
Eine kleine Musterdatei ''master.conf'' befindet sich im Verzeichnis ''/usr/share/doc/dirvish/examples/'' und kann nach ''/etc/dirvish/'' kopiert und dort angepasst werden.
  +
 
Die Einträge erfolgen in dieser Form:
 
Die Einträge erfolgen in dieser Form:
 
bank:
 
bank:
Zeile 52: Zeile 54:
 
|-
 
|-
 
|}
 
|}
  +
 
=== Definition Backup-Profil ===
 
=== Definition Backup-Profil ===
 
für jedes Backup-Profil (Vault) wird auf dem Backupserver eine Konfigurationsdatei angelegt. Der Aufbau ist ähnlich wie in der Datei master.conf, entweder
 
für jedes Backup-Profil (Vault) wird auf dem Backupserver eine Konfigurationsdatei angelegt. Der Aufbau ist ähnlich wie in der Datei master.conf, entweder

Version vom 28. April 2021, 20:47 Uhr

dirvish ist ein schmales, in Perl geschriebenes Backup-Programm auf der Grundlage von rsync. Es wird ausschliesslich über die Kommandozeile bedient. Die Sicherungskopien werden entweder auf einem externen Medium (USB-Festplatte) oder mittels ssh auf entfernten Rechner abgelegt. Umgekehrt kann man mittels ssh auch entfernte Rechner (z.B. vhosts) auf dem lokalen Medium sichern. Dazu müsste aber ssh von Hand nachinstalliert werden, wenn es noch nicht vorhanden ist. Die Backups werden auf dem Zielmedium in sogenannten "Schnappschuss-Verzeichnissen" gesichert. Praktischerweise kann (oder sollte) man das Zielmedium vorher schon mit LUKS verschlüsseln.

Backups lassen sich als Voll- und inkrementelle Backups anlegen. Dadurch ist es möglich, z.B. jeden Sonntag ein Vollbackup zu machen und dann an den folgenden Wochentagen nur noch die Änderungen zu sichern. Auf die unveränderten Dateien wird mit sogenannten "Hardlinks" verwiesen, so dass man ein sehr platzsparendes Backup erhält, dass es trotzdem ermöglicht, jederzeit auf alle Daten zurückzugreifen. Mit Aufbewahrungsregeln (expire-rule) wird festgelegt, wie lange ein Backup erhalten bleibt, bis es wieder überschrieben wird. Dadurch hat man die Möglichkeit, ganze Generationen von Backups anzulegen.

Durch Ausnahme-Regeln (exclude) lässt sich auch festlegen, welche Dateien und Verzeichnisse nicht gesichert werden sollen. Praktisch ist auch die Möglichkeit, Skripte festzulegen, die vor und nach dem Backup ausgeführt werden sollen. So könnte man sich z.B. nach dem Backup eine Mail zuschicken lassen, die über Erfolg oder Misserfolg des Backups berichtet. Da Backups möglichst automatisiert ablaufen sollten, bringt dirvish im Verzeichnis /etc/cron.d/ einen vorgefertigten Cronjob namens dirvish mit, der an die eigenen Bedürfnisse angepasst werden kann (und sollte). Ein weiterer Cronjob mit zugehörigem bash-Skript liegt als Datei dirvish-cronjob im Verzeichnis /etc/dirvish/

Für unterschiedliche Bedürfnisse (z.B. mehrere Rechner oder zur Trennung von Root- und normaler User-Sicherung) lassen sich verschiedene Backupprofile anlegen, in dirvish "Vault" (dt. etwa Tresor) genannt. Letztendlich sind dies Unterverzeichnisse mit dem betreffenden "Vault"-Namen im eigentlichen Backupverzeichnis (in dirvish "Bank" genannt), so dass man z.B. problemlos die gesicherten Daten der gesamten Familie in die Unterverzeichnisse "Maria", "Paul" und "Jan" sortiert bekommt, ohne durcheinander zu geraten.

Neben dem dem eigentlichen Backup-Werkzeug werden noch zwei weitere Programme installiert, die zur Verwaltung von Backups benutzt werden können:

  • dirvish-expire, zum löschen von Backups, deres Aufbewahrungszeit abgelaufen ist
  • dirvish-locate, zur Sache von Dateien innerhalb der Backups

Konfiguration

Die Konfiguration von dirvish erfolgt in mehreren Dateien, einmal in /etc/dirvish/master.conf als globaler Konfigurationsdatei und dann noch für jedes gewünschte Backupprofil eine eigene Konfigurationsdatei. Meistens kommt man aber mit einem Backupprofil aus.

master.conf

Eine kleine Musterdatei master.conf befindet sich im Verzeichnis /usr/share/doc/dirvish/examples/ und kann nach /etc/dirvish/ kopiert und dort angepasst werden.

Die Einträge erfolgen in dieser Form:

bank:
       /backup

es können auch mehrfache Werte angegeben werden, für jeden Wert eine neue Zeile:

exclude:
       tmp/
       proc/
       lost+found/
Liste wichtiger Einstellungen
Einstellung Bedeutung Beispiel
bank: Speicherort des Backups /media/backup/dirvish/pc
exclude: diese Verzeichnisse sollen nicht gespeichert weden
lost+found/
proc/
Runall: wann soll welche Sicherung regelmäßig ausgeführt werden pc-home 23:00
expire-default: wie lange sollen einzelne Sicherungen aufgehoben werden? möglich ist "never" (werden sofort überschrieben) oder +n days (werden nach n Tagen überschrieben) never
expire-rule: Regeln für die Aufbewahrungszeit von Sicherungen. Dazu wird das cron-Format benutzt, Details dazu s. cron Im Beispiel wird das Montags (1 = Montags) erstelle Backup 3 Monate aufgehoben
*   *     *   *         1    +3 months
pre-[*]: Skript, dass vor dem Backup ausgeführt werden soll. [*] ist entweder server oder client, je nachdem, wo das Skript ausgeführt werden soll
pre-server:
    /usr/local/sbin/vor-backup.sh
post-[*]: Skript, dass nach dem Backup ausgeführt werden soll. [*] ist entweder server oder client, je nachdem, wo das Skript ausgeführt werden soll
post-client:
   /usr/local/sbin/nach-backup.sh
speed-limit: maximale Übertragungsgeschwindigkeit der Sicherung in Megabit pro Sekunde 10

Definition Backup-Profil

für jedes Backup-Profil (Vault) wird auf dem Backupserver eine Konfigurationsdatei angelegt. Der Aufbau ist ähnlich wie in der Datei master.conf, entweder

Option: Wert

wenn nur ein Wert angegeben wird, oder

Option:
    Wert1
    Wert2
    Wert3

für mehrfache Werte.

Liste wichtiger Optionen
Option Bedeutung Beispiel
client: Name des Clients, der gesichert werden soll. Ist Clientname = Hostname wird automatisch ein lokales Backup angelegt. Für Backups auf entfernten Rechnern mittels ssh kann es notwendig sein, den Usernamen gefolgt von @ voranzustellen (wie gewohnt bei ssh) gosian@pc
tree: Liste der zu sichernden Verzeichnisse
/home
/root
xdev: entweder 1 (die Verzeichnisse von Mountpoints werden nicht gesichert) oder 0 (sichert auch Mountpoints) 1
index: wenn vorhanden wird eine Liste (Indexfile) aller gesicheten Dateien angelegt. mögliche Werte geben an, wie dieses Indexfile gepackt werden soll (gzip oder bzip2) bzw. nicht gepackt (text) gzip
log: Format für das Logfile. Werte wie bei index: text, gzip oder bzip2 text
image: Name für das Backup-Image, dabei kann das Format von strftime benutzt werden. Diese Einstellung in der Konfigurationsdatei kann dazu führen, dass die Befehlszeilenoption außer Kraft gesetzt wird, deshalb sollte besser die Option image-default benutzt werden %Y%m%d
image-default: wie Option image: %Y-%m-%d
exclude: Liste von Verzeichnissen u. Dateien, die nicht gesichert werden sollen. Wenn vorhanden ergänzt dies die exclude-Liste von master.conf
/var/cache/
/tmp/**

weitere dirvish-Werkzeuge

dirvish-expire

Jedes zugehörige Konfigurationsdatei wird auf das Feld "Expire:" geprüft. Wenn dieses Feld anzeigt, dass die Aufbewahrungszeit des Backups abgelaufen ist, löscht dirvish-expire das Backup aus dem Tresor (Vault). Standardmäßig werden alle Unterverzeichnisse aller Sicherungen als Tresor/vault behandelt und alle Verzeichnisse darin außer dem Verzeichnis mit dem Namen dirvish werden geprüft. Das Entfernen eines Backup-Abbilds hat keine Auswirkungen auf andere Backups. dirvish-expire löscht ein Backup nur dann, wenn es mindestens noch ein intaktes Backup in diesem Zweig findet, das einen erfolgreichen Status hat und dessen Aufbewahrungszeit (Expire) noch nicht abgelaufen ist

dirvish-locate

Suchen von Versionen von Dateien in einem Tresor/Vault

Aufruf:

dirvish-locate vault[:branch] pattern

Der Index eines jeden mit vault angegebenen Backups wird nach Pfaden durchsucht, die dem Muster entsprechen. Jeder gefundene Pfad, der mit dem Muster übereinstimmt, wird gemeldet, gefolgt von der Änderungszeit jeder Version der Datei und aller Bilder, die eine Verknüpfung zu ihr haben. Die optionale Angabe des Zweigs (branch) schränkt die Suche auf den angegebenen Zweig ein. Backups mit einem Fehlerstatus werden ebenso übersprungen wie solche ohne Indexdatei. Die Indexdatei kann mit gzip oder bzip2 komprimiert sein.

Das Muster ist ein regulärer Perl-Ausdruck, der auf die letzte Komponente des Pfades passt. Wenn nach einer beliebigen Teilzeichenkette des gesamten Pfades gesucht werden soll sollte man .* an das Ende des Musters angehängt werden, wenn Sie eine beliebige Teilzeichenkette des gesamten Pfades abgleichen wollen, oder $, wenn das Muster am Ende des Pfades verankert erfen soll. foo.* findet alle Pfade, die im Namen foo beinhalten, foo$ hingegen nur Pfade, die auf foo enden.

Verzeichnisse sind von der Suche ausgeschlossen, da sie ohnehin auf jede Datei darin passen würden. Symlinks sind ebenfalls vom Abgleich ausgeschlossen. Wenn das Muster auf zu viele Pfade passt, meldet dirvish-locate nur die gefundenen Pfade und nicht die Versionen. Als Sicherheitsprüfung, wenn die Anzahl der Übereinstimmungen wirklich zu hoch ist, begrenzt dirvish-locate die Anzahl der durchsuchten Backups. Zu viele Übereinstimmungen sind ein Hinweis auf ein nicht ausreichend spezifisches Muster. Verwenden Sie die resultierende Pfadliste, dann sollte man das Muster an Hand der ausgegebenen Liste spezischer zu definieren, z.B. statt foo.* besser foobar.*

Weblinks

  • DirvishWiki Umfangreiches englischsprachiges Wiki zu dirvish, in dem eigentlich alle Aspekte zu dirvish beleuchtet werden, mitsamt Tipps, FAQ u. Emaillist und mehr
  • Backup leicht gemacht: Lokale und entfernte Sicherung mit Dirvish, Rsync und SSH genau das, was der Titel aussagt, ein ausführlicher Blogbeitrag von Markus alias apo, der an Hand eines praktischen Beispiels detailliert auf die Konfiguration und Anwendung von dirvish eingeht
  • Snapshot-Backups mit Dirvish & Rsync Vortrag von Robert Sander auf den Chemnitzer Linuxtagen 2012. Trotz seine Alters interessant vor allem wegen der Klärung der in dirvish benutzten Terminologie (Bank, Vault, Images, Branch). Geht aber auch gut auf die Konfiguration ein.
  • dirvish-Artikel aus dem Ubuntu-Wiki
  • Offsite-Backup mit DSL-Anschluss selbstbauen geht im Abschnitt "Backup mit dirvish" an Hand eines praktischen Beispiels (Backup auf einem entfernten Zweitrechner mit langsamem DSL-Anschluss und eventuell wechselnden IP-Adressen) auf die Anwendung von dirvish ein