Dirvish: Unterschied zwischen den Versionen

Aus mxlinuxusers.de
Zur Navigation springen Zur Suche springen
K
Markierung: Durch einen Tor-Ausgangsknoten
(Konfiguration ergänzt)
Markierung: Durch einen Tor-Ausgangsknoten
Zeile 1: Zeile 1:
  +
__TOC__
 
'''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.
 
'''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.
   
Zeile 6: Zeile 7:
   
 
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.
 
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.
  +
== 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 ===
  +
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/
   
  +
{| class="wikitable zebra"
  +
|+Liste wichtiger Einstellungen
  +
|- class="hintergrundfarbe5" style="text-align:left;"
  +
! 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.
  +
{| class="wikitable zebra"
  +
|+Liste wichtiger Optionen
  +
|- class="hintergrundfarbe5" style="text-align:left;"
  +
! 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/**
  +
|-
  +
|}
 
== Weblinks ==
 
== Weblinks ==
 
* [https://wiki.dirvish.org/DirvishWiki DirvishWiki] Umfangreiches englischsprachiges Wiki zu dirvish, in dem eigentlich alle Aspekte zu dirvish beleuchtet werden, mitsamt Tipps, FAQ u. Emaillist und mehr
 
* [https://wiki.dirvish.org/DirvishWiki DirvishWiki] Umfangreiches englischsprachiges Wiki zu dirvish, in dem eigentlich alle Aspekte zu dirvish beleuchtet werden, mitsamt Tipps, FAQ u. Emaillist und mehr

Version vom 25. April 2021, 21:27 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.

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

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/**

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