Datensicherung
Datenverlust durch:- ">Hackerangriff"< aka Vireneinbruch
- Diebstahl von Computern
- Brand
- Festplatten- oder Computerausfall
- Benutzerdateien (nicht wiederbringbar)
Liegen im Verzeichnis /home - Server-Daten: Hier sind die Geschäftsdaten.
Liegen oft unterhalb des Verzeichnisses /var.
Vorsicht: Datenbankendateien müssen anders gesichert werden. - Konfigurationsdateien: Ändern sich nicht oft
Liegen meist unterhalb des Verzeichnisses /etc. - Installation der Server und des Betriebssystems
Können im Schadensfall neu installiert werden, kostet aber Zeit.
Ziel der Datensicherung
- Externe Festplatte, USB-Stick: Immer noch besser als keine Sicherung.
- Problem aller eingehängten Medien: Erlauben Ransom-Virus die Zerstörung der Datensicherung!
- CD bzw. DVD: Billiges Archivmedium, Problem der Kapazität bzw. Geschwindigkeit
- Netzwerk: Trennt Sicherung vom gesicherten Rechner, sofern das Sicherungsmedium nicht eingehängt wird.
- Cloud: Die Daten zum Abhören schicken?
- dd: Kopiere Blockdevice in Datei und Umgekehrt. man dd
- Typische Anwendung: Installationsmedien per Internet übertragen (.iso)
- interessant für bootfähige Medien
- Klonen von Festplatten
- dump und restore: man dump
- Sichert komplette Dateisysteme als Image auf Platte oder auf Band
- Zweck: Komplettsicherung.
- Beherrscht inkrementelle Sicherung.
- tar
- Packt Verzeichnisse in eine Datei, auf ein Gerät (Tape) oder auf eine Datei
- Erhält dabei die POSIX Dateieigenschaften
- Kann auch über das Netzwerk sichern (ssh)
- Beherrscht inkrementelle Sicherung
- rsync: Kopiert ein Verzeichnis mit Dateien in ein Verzeichnis mit Dateien
- Speziell für das Netzwerk, aber auch lokal
- Besondere Fähigkeit: Sichert nur Differenzen, auch innerhalb von Dateien.
- Dadurch können einzelne Dateien leicht zurückgeholt werden.
- git (oder andere Versionskontrollen)
- Ideal: Textdateien oder sehr selten verändernde Binärdateien.
- Speziell für das Netzwerk
Das Programm tar
Immer an Bord einer POSIX-Maschine. Optionen:- c erzeuge Datensicherung im Tarball
- x rekonstriere im aktuellen Verzeichnis aus dem Tarball.
- t zeige die Dateien in einem Tarball an.
- f Zielangabe. Dateiname muss als erstes Argument auf Optionen folgen.
- z komprimiere beim Sichern, entkomprimiere beim rekonstruieren mit gzip bzw. gunzip.
- v zeige die Dateien, die gepackt oder entpackt werden.
$ tar cfz server:dasi/montag.tgz .
Das Programm rsync
Nicht standardmäßig verfügbar, muss installiert werden:# apt install rsyncSichern des lokale Verzeichniss data unter dem Benutzer user auf dem Host 192.168.109.199 im Verzeichnis /media/dasi:
$ rsync -a data user@192.168.109.199:/media/dasi/dataWird dieser Befehl wiederholt, wird der Ablauf deutlich schneller, weil nur die Dateien und Dateiteile, die sich geändert haben, gesichert werden. Auf dem Zielrechner entsteht im Verzeichnis /media/dasi/data die gleiche Dateistruktur wie auf dem lokalen Rechner unter data. Es gibt Fehlermeldungen oder sogar Abbrüche, falls POSIX-Eigenschaften auf dem Zielmedium nicht umsetzbar sind. rsync verwendet das SSH-Protokoll beim Sichern über das Netzwerk.
Die Programme dump und restore
Das Programm dump ist dafür geschaffen, komplette Dateisysteme auf ein Band zu sichern. Das ist zwar auch mit Datenpartitionen möglich, zielt aber natürlich vor allem auf das Dateisystem mit der Betriebssysteminstallation und -konfiguration. Ziel ist es, im Falle eines Rechnerausfalls möglichst schnell wieder den ursprünlichen Server wieder ins Rennen zu schicken.dump beherrscht die inkrementelle Sicherung.
In der heutigen Zeit wird dump vermutlich eher seltener eingesetzt. Wenn es darum geht, einen Betriebssystemzustand zu sichern und schnell wieder herzustellen, wird man vermutlich eher eine virtuelle Maschine anlegen und diesen auf einer Linux-Plattform laufen lassen. Für den Fall eines Ausfalls wird dann die Datei der virtuellen Maschine gesichert und kann dann auf einem anderen Rechner schnell wieder in Betrieb gehen.
Inkrementelle Sicherung
Das Konzept der inkrementellen Sicherung sieht vor, dass beispielsweise einmal pro Woche am Wochenende eine vollständige Datensicherung erzeugt wird. Das dauert natürlich seine Zeit. An den Werktagen ist die Zeit knapper. So wird am Montag nur gesichert, was sich seit dem Wochenende geändert hat. Am Dientag werden nur die Unterschiede zu Montag gesichert und so fort.Im Falle einer Wiederherstellung muss dann zunächst die Wochenendsicherung zurückgeholt werden. Darüber wird dann die Montagssicherung geladen und dann weiter jede inkrementelle Sicherung bis zum aktuellen Tag.
Natürlich müssen die Datensicherungstools eine inkrementelle Sicherung unterstützen. Der Vorgang verzögert die Rekonstruktion, ermöglicht aber die Beschleunigung der einzelnen Datensicherungen.
Zeitgesteuert mit cron
Datei in /etc/cron.d im crontab-Format erstellen.# Minute Stunde Tag(Monat) Monat Tag(Woche) User Kommando # (0-59) (0-23) (1-31) (1-12) (1-7; 1=Mo) 0 4 * * * root jedentag4uhr 0 9 1,15 * * root jeden1.und15.um9 0 2 * * 1,2,3,4,5 root werktagsum2Umgebung nicht vorhanden, weder PATH noch Home-Verzeichnis. Die Kommandos müssen also mit Pfad angegeben werden. Sicherungen über das Netzwerk können keine Passwörter abfragen. Lösung: Zertifikate (siehe später SSH) Fehler erscheinen zwar in der syslog. Was aber, wenn niemand hineinschaut? Lösung: Mail an das Konto des Administrator (siehe später Mailserver) \url{http://willemer.de/informatik/unix/unixcron.htm}
Datensicherung mit Datum im Dateiname
Die Datensicherung sollte nicht immer die Datensicherung des Vortages überschreiben. Dazu sollte der Dateiname das aktuelle Datum oder den Wochentag enthalten.date +"%U-%a-%Y_%m_%d-%H:%M"Liefert die Wochennummer, den Wochentag, Jahr, Monat, Tag, Stunde und Minute. (siehe man date oder date --help) Um diese Ausgabe in einen Dateinamen zu bekommen, umschließt man sie mit Dollar und einer Klammer:
$ touch dasi-$(date +"%U-%a-%Y_%m_%d-%H_%M").tgz $ ls -l ... 0 Okt 17 10:14 dasi-42-Di-2023_10_17-10_14.tgzVorsicht bei /. Sie werden als Verzeichnis interpretiert. Löschen alter Datensicherungen, hier 7 Tage (siehe man find):
$ find . -mtime +7 -name "*backup.tar" -exec rm {} \;