abandoned bytes
Engineering: the art of making what you want from things you can get.

Backup mit dump

15. Mai 2009

dump ist ein etwas älteres, aber sehr nützliches Unix-Tool zum Backupen (Anfertigen von Sicherheitskopien, schlagt mich wegen dem Anglizismus) von ext2 und ext3-Dateisystemen. Ich verwende es für das Backupen meiner Home-Partition, was nützlich ist, wenn man sie nachher mal komplett wiederherstellen will (Gründe: Festplattencrash, gestohlener Laptop etc.).

Für Leute, die nicht die gesamte Manpage lesen wollen, um zu verstehen, wie man dump aufruft, hier eine kurze Erklärung:

dump -3u -h 0 -f - /home | gzip > /pfad/zum/backup/verzeichnis/backupfile.dump.gz

Die erste Zahl, hier 3, ist der dump level, welcher für inkrementelle Backups benutzt wird - die Zahl wird jedes Mal erhöht, um nur inkrementelle Backups zu erstellen (welche ich täglich mache); das angehängte -u heißt "aktualisiere die Liste der Backups". Die -h 0 Option sagt dump, dass der nodump flag berücksichtigt werden soll; das heißt, dass Dateien, die mit dem "nodump"-Attribut versehen sind, bei dump level größer gleich 0 nicht mitgespeichert werden (mit 0 werden sie also nie gespeichert - dieses Attribut verwende ich für Videos, Bilder und andere Dateien, die ich nicht dringend brauche). Siehe weiter unten für das nodump flag.

Das -f - sagt dump, wo die Ausgabedatei zu speichern ist, was hier mit - als die Standardausgabe angegeben ist. Der letzte Parameter ist das Dateisystem (Device-Datei oder Mountpoint), welches gesichert werden soll.

Ich lasse dump auf die Standardausgabe ausgeben, welche ich dann in gzip pipe, um die Dateien etwas zu komprimieren. Ich verwende einen NFS Mountpoint für die Zieldatei, was im Endeffekt heißt, dass die Datei auf meinem Server abgespeichert wird. Man könnte natürlich auch einen Dateinamen nach -f angeben und sich die ganze Piperei zu gzip sparen.

nodump flag

Dies ist ein Attribut der ext2/3-Dateisysteme, welches von dump benutzt wird (wenn man es explizit angibt), um zu bestimmen, ob eine Datei oder ein Ordner überhaupt gebackupt werden muss. Ich benutze dieses Flag für Dateien und Ordner, welche ich nicht unbedingt dringend brauche, aber die viel Speicherplatz brauchen, wie z.B. Videos oder Ordner mit Bildern. Das Attribut setzt man mit:

chattr +d <Datei oder Verzeichnis>

Man kann das Attribut auch mit dem gleichen Befehl wieder löschen, wenn man -d benutzt. Man kann sich auch die ext2/3 Attribute ansehen mit:

lsattr

Die Syntax des lsattr-Befehls erinnert an die Syntax des allseits bekannten ls-Befehls.

Shell-Skript

Man sollte immer wieder mal ein volles Backup machen, damit man nicht ALLE Backup-Dateien braucht, um eine Partition vollständig wiederherzustellen. Man muss auch ein volles Backup machen, bevor man inkrementell backupen kann. Man kann ein volles Backup mit der Option -0u (oder dem Argument full beim Skript) machen.

Hier präsentiere ich ein kleines Shellskript, welches ich für tägliches, inkrementelles Sichern verwende. Die Grundidee ist, die Backup-Nummer hochzuzählen und den Backup-Dateinamen ein Datum anzuhängen. Verwendung des Skripts auf eigenes Risiko:

#!/bin/bash # LAST_BACKUP="/etc/last_backup" BACKUP_PATH="/mnt/public/David/_bak/laptop" BACKUP_MOUNTPOINT="/home" sudo smbmount //LINUX/PUBLIC /mnt/public sudo umount "$BACKUP_MOUNTPOINT" if [ "$1" = "full" ]; then if sudo dump -0 -u -h 0 -f - /home | gzip > "$BACKUP_PATH/home-full-`date +%Y-%m-%d`.dump.gz"; then echo 0 | sudo tee "$LAST_BACKUP" > /dev/null exit 0 fi exit 1 fi lb=`cat "$LAST_BACKUP"` nb=`expr $lb + 1` if sudo dump -$nb -u -h 0 -f - /home | gzip > "$BACKUP_PATH/home-`date +%Y-%m-%d`.dump.gz"; then echo $nb | sudo tee "$LAST_BACKUP" > /dev/null fi sudo mount "$BACKUP_MOUNTPOINT"
Zuletzt geändert: 07. September 2009

Kommentare

Mark M., 05. Februar 2010:

This is valuable and well written. Thank you.

Claudio, 04. August 2010:

Cool to hear about that ancient tool for backups.

My former setup has been Unison for essential stuff (between two machines) and kdiff3 for the large and less important stuff. That was fun.

Still dumping? ;-)

David Madl, 04. August 2010:

Cool to hear about "new" approaches :-)

When I first wanted to simplify backups, I was just looking for some simple solution - the Unix-philosophy-compliant dump tool was the perfect match.

I'm starting to abandon dump as almost all of my work is now stored within some kind of revision control system (git is my favourite) and they synchronize well with other machines.

Kommentar schreiben

Die Felder E-Mail und Website sind optional. Die E-Mail-Adresse wird nicht angezeigt, sondern dient mir nur als Antwortmöglichkeit.

Name:
E-Mail:
Website:

Bitte CAPTCHA ausfüllen, um zu bestätigen, dass Du ein Mensch bist:

© 2009 by David Madl. Impressum | Home (English) | Home (Deutsch) | Processing time: 1.306 s

abandoned bytes (de) > Software > Linux-Sachen > dump-Backup
User:
Pass: