Linux: Backup mit Bordmitteln


Hallo,

Angeregt durch die Anleitung von Apfelmus zur Backup-Strategie mit TimeMachine am Mac, möchte ich mich mit diesem Post dem Thema widmen, wie man mit Linux-Bordmitteln System-Backups machen kann.

Im Gegensatz zur TimeMachine ist hier nicht das Ziel von einzelnen Dateien die letzten X Versionen abrufen zu können, sondern ein stabiles Backup des gesamten Systems (oder auch einzelner Verzeichnisse) zu generieren, um jederzeit einen PC oder einen Server wiederherstellen zu können.

Bevor man sich an die Umsetzung macht, sollte man sich überlegen, welche Form von Backups man wählen will. Grundsätzlich benötigt man erstmal ein Vollbackup aller zu sichernden Daten. In weiterer Folge jedoch gibt es auch die Möglichkeit nur inkrementelle Backups zu erstellen, die auf das Vollbackup aufbauen und nur die Änderungen speichern.

Bei großen Datenmengen muss somit nur ein geringerer Teil im Rahmen der inkrementellen Sicherung kopiert werden.

Im Fall des Falles kann durch die Kombination aus Vollsicherung und inkrementellem Backup den Letztzustand wiederherstellen. Für mein Beispiel habe ich gewählt, dass auf eine lokale Festplatte (eine physische, zweite Festplatte) jeden Tag eine Vollsicherung durchgeführt wird. Zusätzlich wird auf ein Netzlaufwerk auf einem entfernten Rechner jeden Samstag eine Vollsicherung, und jeden sonstigen Tag eine inkrementelle Sicherung gemacht.

Der Clue dabei ist, dass jedes inkrementelle Backup direkt auf die Vollsicherung (also nicht auf die vorhergehende inkrementelle Sicherung) aufbaut. Dadurch ist bei Beschädigung eines inkrementellen Backups nicht die gesamte Kette zerstört.

Zum Schluss soll das Script noch eine Mail mit einer Zusammenfassung versenden, damit man sofort in sieht, ob alles geklappt hat. Eine Anleitung, wie man seinem Computer das Mailen beibringen kann, werde ich bald zusammenstellen.

Für die Erstellung der Backups nutze ich den Befehl „tar„.

Meine Backup-Strategie geht davon aus, dass die lokale Festplatte, auf die die täglichen Vollsicherungen gehen sollen, auf /media/hdbackup gemountet ist. Da auf dem betreffenden Server mehrere Netzlaufwerke fix verbunden sind, befinden sich alle diese gemounteten Laufwerke unterhalb von /media/netmount/. So auch das Laufwerk für die Remotesicherung unter /media/netmount/backup.

Um nun die Backups einzurichten, lädt man das gesamte Archiv herunter und entpackt es in einen Ordner nachWunsch. [hdbackup.tar.gz] Ich habe das Programm nach /var/opt/hdbackup/ gelegt, es ist aber jeder andere Ort ebenso denkbar.

Mein Programm besteht aus mehreren Scripts, wobei eines davon eine Funktion von Uwe Berger zur Umwandlung der Bytegröße in ein leichter lesbares Format beinhaltet. [hdbackup-zahlen.sh]. Wichtig für den Benutzer ist die Konfigurationsdatei [hdbackup-config.sh].

Die einzelnen Konfigurationsparameter sollten relativ leicht verständlich sein, bei Fragen kann man mich gerne kontaktieren. Nicht zu vergessen ist, dass in den Dateien hdbackup.sh und hdrestore.sh ganz oben das „workingdir“ gesetzt werden muss!!

Damit nun das Skript täglich ausgeführt wird, benötigen wir noch einen Cron-Job, also editieren wir die Cron-Tab mit folgendem Befehl: (unbedingt sudo benutzen, damit auch das Backup-Script mit Root-Rechten ausgeführt wird)

sudo crontab -e

und wir fügen folgende Zeile ein:

00 18 * * * bash /var/opt/hdbackup/hdbackup.sh

Somit wird unser Programm jeden Tag um 18 Uhr gestartet. Der Pfad zur Datei hdbackup.sh muss nun natürlich angepasst werden!

Sofern der Server mailen kann, erhält man nun jeden Tag eine Mail mit einer Zusammenfassung der aktuellen Backups, oder man kann im Gesamtlog-File nachlesen, ob die Backups funktioniert haben. Standardmäßig liegt dieses Logfile auf /var/log/hdbackup.log, diese Datei kann aber in der Konfiguration angepasst werden.

That’s it.

R.S.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s