Backups sind ein eher unbeliebtes Thema, genau so wie das bezahlen von Krankenkassenprämien und Versicherungen: Im Moment hat man nichts davon (ausser dass man vielleicht ruhiger schlafen kann), aber wenn mans mal braucht dann ist man ungemein froh darüber.

Im Gegensatz zur Krankenkassenversicherung wird man von niemanden dazu gezwungen, ein Backup auch zu machen. Bitte alle aufstehen, die irgendwo ein System haben, das nicht gebackupd wird. Und jetzt auch noch alle, die zwar ein Backup haben, aber noch nie einen Restore davon ausprobiert haben? Alle die jetzt stehen sollten den folgenden Beitrag lesen, und ich bin mir sicher, dass es einige sind :)

Ein Backup zu erstellen ist nicht besonders schwer, und man braucht auch bestimmt nicht selbst irgendwelche Skripts zu schreiben.

Ich nutze eigentlich auf allen System Dirvish. Es ist ziemlich einfach zu konfigurieren, und vor allem ist es sehr einfach nachzuvollziehen, was passiert, bzw. was gebackupd wird. Dirvish nutzt Hardlinks für die verschiedenen Versionen des Backups, gleiche Dateien belegen also nicht mehrfach Platz. Vielleicht noch zwei Begriffe: Dirvish legt die verschiedenen Backup-Ziele (sogenannte “Vaults”) in einem “Bank”-Verzeichnis ab.

Zuerst müssen wir Dirvish jedoch noch installieren:

sudo aptitude install dirvish ; sudo emerge dirvish

Wie gesagt, Dirvish braucht eine “Bank” für die Backups, sowie einen Vault pro Backupziel. Unsere Bank erstellen wir in /mnt und nennen sie “backup”. Ein Vault ist nichts anderes als ein Ordner mit einem Unterordner namens “dirvish”, nennen wir ihn “root”.

sudo mkdir -p /mnt/backup/root/dirvish

Danach editieren wir die Datei /etc/dirvish/master.conf, in der die globalen Einstellungen gemacht werden. So könnte es Beispielsweise aussehen:

bank:
        /mnt/backup

# Veranlässt Dirvish, beim Backup auf dem
# aktuellen Filesystem zu bleiben.
xdev: true

# Ein paar nützliche excludes:
exclude:
        lost+found/
        /proc
        /mnt
        /dev
        /sys
        /var/cache/apt/archives/*.deb

# Alle Backups werden grundsätzlich
# nur 30 Tage lang aufbewahrt
expire-default: +30 days

# bis auf das erste jedes Monats,
# das behalten wir ein ganzes Jahr lang:
expire-rule:
# MIN HR DOM MON DOW STRFTIME_FMT
   *   *  1   *   *   +1 year

# Welche Backups/Vaults standardmässig
# gesichert werden:
Runall:
        root

Diese Einstellungen sind für alle Vaults gültig. Danach brauchen wir nur noch eine Konfiguration für das Backup (/mnt/backup/root/dirvish/default.conf):

# Der lokale Name des Rechners
client: Debian-40-etch-64-LAMP

# Und den Pfad, ab dem wir sichern wollen
tree: /

Mehr brauchen wir nicht zu konfigurieren. Tatsächlich sind wir schon fast fertig, wir müssen nur noch den Vault initialisieren und abwarten, während das erste Backup gemacht wird.
dirvish --vault root --init

Per cronjob (/etc/cron.d/dirvish) wird das ganze nun jeden Abend angekickt. Das wars schon!