Backup: Unterschied zwischen den Versionen
Ulf (Diskussion | Beiträge) (tar hinzu und Struktur geändert) |
|||
Zeile 17: | Zeile 17: | ||
+ | === 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. [https://de.wikipedia.org/wiki/Network_Attached_Storage NAS]). Wie man erfährt, in welchen Verzeichnis diese zu finden sind, kann man z.B. auf [https://wiki.ubuntuusers.de/Datenträger/ 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. [https://de.wikipedia.org/wiki/Dolphin_(KDE) Dolphin]) per Drag'n'Drop (also Markieren und Kopieren) machen. | 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. [https://de.wikipedia.org/wiki/Dolphin_(KDE) Dolphin]) per Drag'n'Drop (also Markieren und Kopieren) machen. | ||
Zeile 32: | Zeile 37: | ||
Dabei wird mit ''[https://wiki.ubuntuusers.de/cp/ 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 [https://wiki.ubuntuusers.de/Homeverzeichnis/ 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. | Dabei wird mit ''[https://wiki.ubuntuusers.de/cp/ 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 [https://wiki.ubuntuusers.de/Homeverzeichnis/ 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. | ||
+ | |||
+ | === 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 [https://de.wikipedia.org/wiki/Tar_(Packprogramm) tar] vermeiden. Da <code>tar</code> standard mäßig die Daten nicht packt, muss man es via [https://de.wikipedia.org/wiki/Parameter_(Informatik) Parameter] (<code>-z</code> für [https://de.wikipedia.org/wiki/Gzip gzip], <code>-j</code> für [https://de.wikipedia.org/wiki/Bzip2 bzip2], <code>-J</code> für [https://de.wikipedia.org/wiki/XZ_Utils xz] und mit <code>-a</code> wird die Kompressionsmethode anhand der Dateiendung ermittelt) gesteuert. | ||
+ | |||
+ | Um die Dateien im Verzeichnis <code>/home/benutzer</code> (= Daten des Benutzers <code>benutzer</code>) 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 [https://www.linuxwiki.de/DatumUndUhrzeit <code>date</code>] Befehl. Die Ausgabe des Befehls kann man einfach einbinden indem man diesen in der Komandozeile ausführen lässt, was man mit <code>$(Befehl)</code> erreichen kann. Somit kann man z.B. Zieldatei <code>/mnt/usbstick/benutzer_backup_$(date +%F_%H-%M-%S).txz</code> erzeugen. Wobei <code>$(date +%F_%H-%M-%S)</code> 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 <code>/mnt/usbstick/user_backup_2018-09-02_17-07-08.txz</code> heißen. | ||
+ | |||
+ | <pre>tar cJvf /mnt/usbstick/benutzer_backup_$(date +%F_%H-%M-%S).txz -C ~benutzer .</pre> | ||
+ | |||
+ | |||
+ | === Regelmäßiges (delta) update mit "rsync" === | ||
Eleganter ist aber, insbesondere wenn man es regelmäßig macht, die Verwendung von ''[https://wiki.ubuntuusers.de/rsync/ rsync]''. Der Befehl dazu lautet: | Eleganter ist aber, insbesondere wenn man es regelmäßig macht, die Verwendung von ''[https://wiki.ubuntuusers.de/rsync/ rsync]''. Der Befehl dazu lautet: | ||
rsync --delete -ra /home/benutzer /mnt/usbstick | rsync --delete -ra /home/benutzer /mnt/usbstick | ||
Wie man aufwendigere, regelmäßige Backups mit ''rsync'' machen kann, findet man ebenfalls im [https://wiki.ubuntuusers.de/ UbuntuUsers-Wiki] im Artikel [https://wiki.ubuntuusers.de/Skripte/Backup_mit_RSYNC/ Skripte - Backup mit RSYNC]. | Wie man aufwendigere, regelmäßige Backups mit ''rsync'' machen kann, findet man ebenfalls im [https://wiki.ubuntuusers.de/ UbuntuUsers-Wiki] im Artikel [https://wiki.ubuntuusers.de/Skripte/Backup_mit_RSYNC/ Skripte - Backup mit RSYNC]. | ||
+ | |||
+ | |||
== Regelmäßige Voll- und Delta-Backups == | == Regelmäßige Voll- und Delta-Backups == |
Version vom 2. September 2018, 18:42 Uhr
Backup
Ein Backup dient ganz allgemein dazu, Daten in einer geeigneten Weise zu sichern. Dabei gibt es meiner Ansicht nach im Wesentlichen vier Herangehensweisen.
- Gar kein Backup: Meiner Ansicht nach die schlechteste Idee.
- 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.
- 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.
- 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:
- rsync Homepage
- storebackup Homepage
- robocopy - Artikel bei downloads.heise.de
- Linux-Magazin Ein Tag um Backups machen
- nixCraft
- Techradar
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.
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
ToDo
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)
- Backup aller (wichtigen) Daten ist ein Muß für den LUG-Interessierten und ein Fehlen kann beim Profi sogar zur Abmahnung führen!
- Ein Backup ist immer gewissenhaft zu konfigurieren!
- Das erste - und alle weiteren Backups - sind zyklisch mindestens einmal monatlich zu überprüfen (Stichproben verschiedener Dateien incl. ZIP und Videos wiederherstellen)!
- Die Backup-Strategie ist gewissenhaft zu wählen!
- 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