Backup

Aus lugvswiki
Wechseln zu: Navigation, Suche

Backup

Ein Backup dient ganz allgemein dazu, Daten in einer geeigneten Weise zu sichern. Dabei gibt es meiner Ansicht nach im Wesentlichen vier Herangehensweisen.

  1. Gar kein Backup: Meiner Ansicht nach die schlechteste Idee.
  2. Sporadisches Kopieren wichtiger Daten auf einen anderen Datenträger: Kann bei entsprechender (Un-)Wichtigkeit der Daten und sehr guter Disziplin, dass man es auch wirklich macht, wenn sich die entsprechenden Daten ändern, ausreichend sein.
  3. Regelmäßige Voll- und Delta-Backups mit einem entsprechenden Programm (üblich ist eine Wochen-Voll-Sicherung und eine Tages-"Delta"-Sicherung): Ist schon sehr gut und bietet über die Delta-Sicherungen bis zum letzten aufbewahrten (Voll-)Backup auch eine eingeschränkte Archivfunktion.
  4. Backup mit Archivfunktion: Hier können auch Änderungen, welche aus Versehen gemacht werden, im Rahmen der bis dahin archivierten Backups rückgängig gemacht werden.


Weitere Links zum Thema Backup:


Wohin mit der Sicherung

Baustelle - Redundanz mit nächsten Abschnitt muss noch besser gelöst werden !!! - Evtl. Erweiterung

Möchte man z.B. seine eigenen Daten regelmäßig z.B. auf ein externes Medium (USB-Stick, externe Festplatte oder gar auf einen anderen Rechner bzw. NAS). Wie man erfährt, in welchen Verzeichnis diese zu finden sind, kann man z.B. auf UbuntuUsers.de Datenträger nachschauen.


Sporadisches Kopieren

Sporadisches Kopieren von wichtigen oder gar einmalig vorhandenen Daten auf einen anderen Datenträger oder in die Cloud ist die einfachste Variante. Das kann man einfach auf dem grafischen Desktop (also dem PC-Arbeitsplatz) und dem dort vorinstallierten Dateimanager (bei KDE z.B. Dolphin) per Drag'n'Drop (also Markieren und Kopieren) machen.

Die zweite, meist elegantere Möglichkeit (da man auch Fehler besser gemeldet bekommt - die Daten sollten ja schon fehlerfrei auf dem Ziel ankommen), ist meist ein einfacher Befehl auf der Text-Konsole (meist nur Konsole, Terminal, Shell oder auch CLI, vom englischen Command Line Interface - im Gegensatz zum GDI vom englischen Graphic Desktop Interface - genannt). Dazu öffnet man ein solches über das Eintippen von konsole oder terminal im Startmenü oder via gleichzeitigen Drücken von zuerst der <alt>-Taste auf der Tastatur und dann der <F2> Funktionstaste oben auf der Tastatur (wird normalerweise mit <alt>+<F2> abgekürzt). Wird das Programm aufgelistet, wählt man es aus. Wichtig: Bei Systemen mit einer richtigen Benutzerverwaltung (fast alle nicht auf Ubuntu basierten Systeme) gibt es auch eine Variante, welche sich root, Admin oder Superuser nennt. Diese ist dann zu bevorzugen, da sie immer alle benötigten Rechte mitbringt. Allerdings muss man dann einmalig das so genannte root- (also Administrator- oder Superuser-) Passwort eingeben. Bei einigen Systemen ist dieses mit dem des zuerst angelegten Benutzers identisch. Gibt es diesen root- Benutzer nicht, muss man entweder einmalig

sudo su

eingeben und wird dann erst zur Eingabe des root Benutzer Passwortes aufgefordert, oder vor jeden Befehl, der Dateien verändert, kopiert oder verschiebt das Wort sudo gefolgt von einer Leerstelle eingeben. Dabei bewirkt der Befehl sudo die Erweiterung der Rechte auf Administrator oder root des angemeldeten Benutzers.

Die einfachste Möglichkeit ist auch hier das Kopieren einzelnen Dateien oder kompletter Verzeichnisse. Eine einfache Einführung zur Kommandozeile findet sich z.B. im UbuntuUsers Wiki:

cp -av /home/benutzer /mnt/usbstick

bzw. wenn man nicht als root angemeldet ist, mit vorangestellten sudo:

sudo cp -av /home/benutzer /mnt/usbstick

Dabei wird mit cp ein Kopiervorgang gestartet und mit den so genannten Optionen -av alle Dateien und Unterverzeichnisse unter Beibehaltung aller Verzeichnis-Attribute (also Benutzer und Rechte) kopiert (wobei v jede einzelne Datei bzw. Verzeichnis anzeigen lässt - sonst sieht man nichts - womit man nicht weiß ob und wie lange der Vorgang noch läuft). Anschließend wird am besten der komplette Dateiname bzw. Verzeichnisname der Quelle und anschließend die des Zieles angegeben. In diesem Fall werden also alle Dateien und Verzeichnisse, welche im so genannten Homeverzeichnis des Benutzers mit dem Namen benutzer (Groß- und Kleinschreibung ist hier wie immer bei Unix basierten Systemen wie Linux, relevant) in das Ziel-Verzeichnis /mnt/usbstick kopiert. Dabei wird in diesem Fall dort als erstes das Unterverzeichnis benutzer angelegt in den hinein dann alle anderen Dateien und Verzeichnisse kopiert werden.

Datensicherungswerkzeug (mintBackup)

Ein mit GUI ausgestattetes Backup-Tool ist in Linux Mint vorhanden und nennt sich einfach "Datensicherungswerkzeug". Es bietet eine sehr einfache Möglichkeit die persönlichen Daten (/home) oder Programme manuell auszuwählen, zu sichern und wiederherzustellen.

Sporadisches "Packen"/"ZIP-pen"

Manko des Kopierens ist, dass die Quelldateien im Zielverzeichnis den gleichen Speicherplatz verbrauchen. Dazu kommt noch je nach Zielverzeichnis, dass nicht immer alle Benutzerrechte und andere Attribute erhalten bleiben. Dieses kann man durch Zusammenbinden (Zusammenkleben) mit dem Kommandozeilenprogramm tar vermeiden. Da tar standard mäßig die Daten nicht packt, muss man es via Parameter (-z für gzip, -j für bzip2, -J für xz und mit -a wird die Kompressionsmethode anhand der Dateiendung ermittelt) gesteuert.

Um die Dateien im Verzeichnis /home/benutzer (= Daten des Benutzers benutzer) in eine Datei zu sichern, sollte man vorher wieder sicherstellen dass genügend platz auf dem Zielverzeichnis ist! Da man evtl. mehrere Sicherungen im gleichen Verzeichnis unterbringen möchte, empfiehlt es sich, die Zieldatei mit dem Datum zu ergänzen. Dieses geht unter der Linux Kommandozeile recht einfach, durch den date Befehl. Die Ausgabe des Befehls kann man einfach einbinden indem man diesen in der Komandozeile ausführen lässt, was man mit $(Befehl) erreichen kann. Somit kann man z.B. Zieldatei /mnt/usbstick/benutzer_backup_$(date +%F_%H-%M-%S).txz erzeugen. Wobei $(date +%F_%H-%M-%S) den Zeitstempel zum Zeitpunkt des Aufrufs des Kommandos generiert z.B. am 02.09.2018 um 17:07 Uhr und 7 Sekunden wird das Backup /mnt/usbstick/user_backup_2018-09-02_17-07-08.txz heißen.

tar cJvf /mnt/usbstick/benutzer_backup_$(date +%F_%H-%M-%S).txz  -C ~benutzer .


Regelmäßiges (delta) update mit "rsync"

Eleganter ist aber, insbesondere wenn man es regelmäßig macht, die Verwendung von rsync. Der Befehl dazu lautet:

rsync --delete -ra /home/benutzer /mnt/usbstick

Wie man aufwendigere, regelmäßige Backups mit rsync machen kann, findet man ebenfalls im UbuntuUsers-Wiki im Artikel Skripte - Backup mit RSYNC.


Regelmäßige Voll- und Delta-Backups

Prinzipiell kann man mit einfachen Mitteln (tar) auf der Kommandozeile (bash-Skripte) schon sinnvolle Backups auch regelmäßig (cron) erstellen (lassen). Einfacher geht es jedoch ...

Mit Timeshift

Für Ubuntu basierte Systeme (Linux Mint) gibt es seit einiger Zeit das Programm "Timeshift", das mit Hilfe von rsync automatisch Backups auf ein zuvor festgelegtes Ziel (lokales Verzeichnis, lokale Partition, lokaler Datenträger oder entferntes Ziel) in ebenfalls definierten Zeitintervallen (täglich, wöchentlich, monatlich, stündlich oder beim Booten) die gewünschten Daten (Quelldatenträger, -partition, -dateisystem, -verzeichnis, etc.) als sogenannte "Snapshots" sichert. In den Standardeinstellungen wird ein Filter gestezt der sowohl root ( "/" ) als auch /home sichert. Timeshift ist für viele andere Distributionen verfügbar, bietet ein grafisches Frontend das die Einstellungen auch für Laien übersichtlich und einfach macht.

Seit Linux Mint 18.3 kann ein Upgrade eines laufendne Mint-Systems nur noch mit Hilfe von Timeshift zuvor erstelltem Snapshot durchgeführt werden. Ohne diesen Snapshot, lässt sich Linux Mint 18.3 nicht auf Linux Mint 19 aktualisieren! Deshalb wird Timeshift automatisch installiert und gestartet sobald, das Upgrade initiiert wird. Beim Verzicht auf die Erstellung eines Snapshots mit Timeshift bricht der Aktualisierungsprozess mit einer entsprechenden Fehlermeldung ab!

Mit Storebackup

Ein ebenfalls für viele Distributionen verfügbares Backup-Tool ist Storebackup. Storebackup hat keine GUI und kann nur von der Kommandozeile und mit Hilfe von entsprechenden Konfigurationsdateien gesteuert werden. Die zu sichernden Daten werden mit bzip2 (bz2) komprimiert und können im Bedarfsfall auch über einen Dateimanager relativ einfach wiederhergestellt werden.

Die Bedienung und Konfiguration ist mit einer steilen Lernkurve nicht gerade einsteigerfreundlich, bietet aber eine sichere und stabile Möglichkeit Datensicherungen durchzuführen. Dabei kann mit Hilfe der entsprechenden Konfigurationsdateien sehr detailliert und granular gesteuert werden, welchen Daten gesichert werden und welche nicht. Es eignet sich vor allem für Dateiserver und reine Datenverzeichnisse wie /home-Verzeichnisse und den Einsatz durch Systemadministratoren.

Links:
storebackup.org
nongnu.org
Sourceforge.net

Backup mit Archivfunktion

Archiv-Funktion - wozu und wie

Für mich handelt es sich um eine echte Archivfunktion, wenn ich über eine gewisse Zeit oder über eine gewisse Anzahl von Änderungen diese wieder rückgängig machen kann. Ein Programm mit Archivfunktion ist das von mir verwendete storeBackup welches bei vielen Distributionen über die Standard-Repositories erhältlich ist.

Einen weiteren Artikel zu storeBackup findet man auch in der iX.


Beispiel aus der Praxis

Von Uwe S.

Hier will ich mal ein Beispiel aus meiner beruflichen Praxis zum Besten geben:

Ein Kollege aus der Personalabteilung hat mit dem Ende der zeitlich ohnehin befristeten Beschäftigung von Leiharbeitskräften mit Schlag 01.08.2014 alle bis dahin vorhandnenen Datensätze von eben jenen ausgeschiedenen Mitarbeitern gelöscht. Eine Kollegin von der Zeiterfassung konnte daher die im letzten Monat aufgelaufenen Arbeitszeiten nicht mehr abrechnen. Waren ja keine Daten zu den betreffenden (Ex-) Kollegen mehr vorhanden. Aber wozu hat man eine Datensicherung. Da das Zeiterfassungsprogramm auf Basis einer ISAM-Datenbank läuft, wird eine Datensicherung mit Bordmitteln der Datenbank als Datei auf einem lokalen Dateisystem erzeugt und von dort mit TIVOLI wie eine normale Datei gesichert. Um Platz zu sparen wird die gesicherte Datei mit ZIP komprimiert. Der TIVOLI-Client ist mit Defaultwerten konfiguriert und da werden ZIP-Dateien ausgenommen. Die ZIP-Datei wird jeden Tag durch die Datenbanksicherung überschrieben. Mit anderen Worten: da gibt es kein Backup! Jedenfalls keines, das älter 24 Stunden ist.

Zuerst habe ich gedacht, auch storeBackup würde komprimierte Dateiformate nicht sichern, aber das war falsch: storeBackup komprimiert nur standardmäßig keine Dateien kleiner 1024 kB UND komprimierte Formate:

comprRule = $size > 1024 and not $file =~ /\.zip\Z|\.bz2\Z|\.gz\Z|\.tgz\Z|\.jpg\Z|\.gif\Z| 
\.tiff\Z|\.tif\Z|\.mpeg\Z|\.mpg\Z|\.mp3\Z|\.ogg\Z|\.gpg\Z|\.png\Z

Übrigens haben wir nun - nachdem das Kind leider schon wieder mal in den Brunnen gefallen ist - ZIP-Dateien von der Ausnahme ausgenommen; sprich: sie werden künftig gesichert. Unsere Rettung ist in diesem Fall etwas aufwändiger, aber immerhin realisierbar. Da wir die Daten auf Dateisystemebene mit TIVOLI sichern, sind auch alle zurückliegenden Datenbankdateien in den Sicherungssätzen vorhanden. Also kann man den Zustand der Datenbank von einem spezifischen Datum theoretisch wiederherstellen. Nicht aber in der Originaldatenbank, sondern auf einer Testinstanz.

Im Nachgang kann man dann die fehlenden Datensätze aus der wiederhergestellten Datenbank exportieren und sie dann in die Originaldatenbank wieder importieren.


Fazit: (By Ulf)

  1. Backup aller (wichtigen) Daten ist ein Muß für den LUG-Interessierten und ein Fehlen kann beim Profi sogar zur Abmahnung führen!
  2. Ein Backup ist immer gewissenhaft zu konfigurieren!
  3. Das erste - und alle weiteren Backups - sind zyklisch mindestens einmal monatlich zu überprüfen (Stichproben verschiedener Dateien incl. ZIP und Videos wiederherstellen)!
  4. Die Backup-Strategie ist gewissenhaft zu wählen!
  5. Jedes Backup bzw. dessen Logdatei (Bericht, Report) muss zumindest auf Fehler und Warnungen fortlaufend beobachtet werden!


'Anmerkung zu storeBackup: (by stippi)

Ich habe übrigens schon erfolgreich einen kompletten Fileserver mit Hilfe von storeBackup wiederherstellen können. :-)


Links rund um dieses Thema



Zurück zur Linux Hilfeseite