Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:systembackup

Systembackup

Als Backup für mein Notebook setze ich eine externe Festplatte mit USB 2.0-Anbindung ein. Bei der Festplatte handelt es sich um eine Western Digital Caviar Green 640GB WD640. Das Gehäuse ist ein RaidSonic IB-351U-B ICY in Schwarz. Das Backup beinhaltet zum einen meine persönlichen Daten aus dem /home-Verzeichnis, das /etc-Verzeichnis, sowie eine Paketliste von apt bzw. dpkg, womit im Grunde das System wieder komplett hergestellt werden kann. Im folgenden soll die komplette Vorbereitung der Festplatte, des Backupssystems, des Backups selbst, sowie das Rückspielen des Backups erläutert werden.

Festplattenvorbereitung

Da ich das Dateisystem ext3 bereits auf meinem Notebook einsetze habe ich mich dafür entschieden auch die Festplatte mit diesem Dateisystem zu bestücken. Folgende Schritte sind dazu notwendig.

Festplatte partitionieren

Mit sudo cfdisk /dev/*platte* cfdisk im interaktiven Modus starten (Dateisystem darf nicht eingebunden sein). Anschließend eine neue Partionierung vornehmen und mit einem Linux-Dateisystem (83) markieren. In meinem Fall nimmt eine primäre Partition den kompletten Speicher von 640 GB in Anspruch.

ext3-Dateisystem einrichten

Mit folgendem Kommando wird das ext3-Dateisystem eingerichtet:

mkfs -t ext3 /dev/*plattenpartition*

Festplatte immer im gleichen Verzeichnis einbinden

Dazu einfach folgenden Befehl ausführen:

   sudo tune2fs -L backupdisk /dev/sdb1

Dadurch bekommt die Festplatte ein Label gesetzt dieses udev verwendet um den Mountpunkt bzw. Name des Verzeichnises zu definieren.

Backupsystem einrichten

Paketlisten backup

Mit dem nachfolgenden Kommando kann eine Liste aller Pakete im System erzeugt werden, diese dann in der Datei packages.list gespeichert wird.

dpkg --get-selections | awk '!/deinstall|purge|hold/ {print $1}' > packages.list 

Um dies zu automatisieren nutze ich folgendes backup_packages.sh-Script. Dieses Script speichert im aktuellen Verzeichnis eine Datei mit dem namen packages.list.

#!/bin/sh
#Erstellung der Paketliste und abspeichern
dpkg --get-selections | awk '!/deinstall|purge|hold/ {print $1}' > packages.list 

rsnapshot ruft dieses Script auf (siehe unten) und führt es in einem temporären Verzeichnis aus. Anschließend wird die erstellte Liste nach /media/backupdisk/backups/paketliste kopiert.

Wichtig ist das diese Datei ausschließlich für root schreibbar sein darf. Da rsnaphot mit root-rechten gestartet wird, könnte eine andere Konfiguration zu Problemen führen, da eine Dritte-Person so Befehle als root ausführen könnte.

rnsapshot einrichten

Im Grunde erstelle ich dann auf der Festplatte nur noch zwei Verzeichnisse.

mkdir /media/backupdisk/backups/
mkdir /media/backupdisk/backups/paketliste

und ersetze unter /etc/rsnapshot.conf die Datei mit folgender rsnapshot.conf

Dabei ist vor allem die letzte Zeile interessant. rsnapshot führt das oben erstellte Script aus und speichert die Ausgabe in das zuvor auf der Festplatte erstellte Verzeichnis „paketliste“.

Backup durchführen

Da die Festplatte nicht dauerhaft an meinem Notebook angeschlossen ist, werden alle Backups manuell ausgeführt. Da auch die Paketliste automatisch mit gesichert wird reicht es, eines der folgenden drei Kommandos auszuführen (mit sudo unter Ubuntu)

sudo rsnapshot daily
sudo rsnapshot weekly
sudo rsnapshot monthly

Die Namen daily, weekly, monthly haben keine Bedeutung für das Backupintervall. Sie sind willkürlich. Erst durch einen Cronjob würden diese automatisch erstellt werden. Für die Organisation der Backups ist folgendes anzumerken. Das letzte Backup vom daily-Intervall bildet das erste Backup vom weekly-Intervall, selbiges gilt bei monthly, etc.

Rückspielen vom Backup

Dateien

Die Dateien werden von hand per cp kopiert. Für Config-Dateien in /etc/ empfiehlt es sich diese einzeln und nicht komplett zu kopieren, so schließt man mögliche Fehler direkt aus.

Paketliste

Mit folgendem Kommando können aus der Datei packages.list die Pakete wieder automatisch installiert werden.

xargs -a "packages.list" sudo apt-get install 

Tipp: Zuvor alle nicht benötigten Pakete bzw. deren Zeilen händisch löschen.

linux/systembackup.txt · Zuletzt geändert: 2014/03/16 19:44 von patrickbeck