Blog Digitalgesellschaft Verwaltungsbetrieb Textarchiv Textarchiv Walter Kirk (✝) Impressum

 

Datensicherung mit Rsync via SSH

 

 

Vorbemerkung

Wer seine wichtigen digitalen Medien schützen will, also Audio-, Bild-, Text- und Videodokumente, muss sich zwangsläufig auch mit ihrer sicheren Aufbewahrung beschäftigen.

Leider sind die Möglichkeiten mit dem Betriebssystem Linux eher begrenzt, diese Aufgabe sozusagen automatisch erledigen zu können. Vielmehr ist hier noch einige Einstellungsarbeit notwendig, um ein praktikables Arbeiten mit Backup und Datensicherung zu gewährleisten.

In diesem Beitrag wird eine Alternative mit den Programmen rsync und SSH aufgezeigt. Damit lassen sich einige Vorgänge durchaus sozusagen wie von selbst erledigen.

Aus der Fülle der im Internet und in den speziellen Foren (community) gegebenen Hinweise zu diesem Thema sind diejenigen hier eingeflossen, die im aktuellen Test mit Ubuntu (23.04) geeignet sind, die Datensicherung regelmäßig, zuverlässig und sicher zu erledigen.

Voraussetzungen

Hardware

Wer über Backup und Datensicherung nachdenkt, braucht unbedingt auch ausreichend Speicherplatz in Form von Festplatten (HD). Da hier die persönlichen Verhältnisse eine große Rolle spielen, gilt es den eigenen Bedarf einigermaßen einzuschätzen. Wie man seinen individuellen Speicherplatzbedarf berechnet, hängt primär von den Aufgaben ab, die das eigene System bewältigen soll, z.B. Überwachung mit mehreren Kameras oder privates Home-Office.

Für die Sicherung der Daten gilt eine 3-fach-Regel: 1. Sicherung: Backup, 2. Sicherung: Datensicherung, 3. Sicherung: externe Aufbewahrung, also außerhalb des eigenen Arbeits-/Wohnbereiches.

Umgesetzt auf das private Home-Office gilt als Faustformel: derzeitig belegter Speicherplatz x 2 (Verdopplung) x 2 Festplatten (HD). Die externe Aufbewahrung wäre beispielsweise eine Speicherung in der Cloud oder bei GitHub, GitLab und ähnlichen Diensten.

Beispiel: 1 TB belegter Speicher x 2 = 2 TB x 2 = 2 HD mit 2 TB Speicherplatz.

Für eine Langzeitarchivierung wird auf den Blogbeirag Digitale Langzeitarchivierung verwiesen. Da ein Ausfall durch defekte an einer Hardware möglich sind, eignen sich für ein Backup auch sogenannte RAID-Systeme, also eine Spiegelung oder ein Verbund von HD. Siehe auch den Blogbeitrag Installation Ubuntu-Server 22.04 mit Software-Raid 1 auf einem Tablet-PC.

Software

Unter dem Betriebssystem Linux werden zwei Programme benötigt, die ein Backup bzw. eine Datensicherung über ein verschlüsseltes System ermöglichen:

- rsync -- a fast, versatile, remote (and local) file-copying tool

- SSH -- Secure Shell (OpenSSH)

SSH ermöglicht die gegenseitige Authentifizierung und eine verschlüsselte Datenübertragung, so dass sensible Daten wie Passwörter oder Benutzernamen nicht von Unberechtigten ausgespäht werden können. Secure Shell bietet dabei ein hohes Sicherheitsniveau.

Zur Installation wird ein Terminal geöffnet und folgendes ausgeführt (debian-basierte Distribution):

Wer lieber mit einer graphischen Benutzeroberfläche den Datenaustausch erledigen will, kann das Programm Grsync nutzen. Hier wird der Weg über die Kommandozeile beschrieben, weil Grsync automatisierte Sicherungen nicht ermöglicht.

SSH einrichten

Schritt 1: Schlüssel erzeugen

Alternative 1: GitHub und GitLab

Die bei den Diensten angegebene E-Mail-Adresse ist anzugeben.

Weitere Hinweise siehe den Blogbeitrag GitHub via SSH.

Alternative 2: Sonstige

Schritt 2: Schlüssel austauschen

Damit nicht bei jedem Datenaustausch das Password abgefragt wird und einzugeben ist, kann der erstellte Schlüssel als generelle Authentifizierung auf dem entfernten Speicher (Remote Server) angegeben werden. Dazu wird der öffentliche Schlüsse (test.pub) in die Datei .ssh/authorized_keys eingetragen:

Alternative 1

Danach sind noch die Rechte zu vergeben:

Alternative 2: Kopieren des öffentlichen Schlüssels mit ssh-copy-id

Mit der folgenden Anweisung werden die Schlüssel des Client auf den entfernten Remote-Server übertragen und in die Datei .ssh/authorized_keys eingetragen:

Schritt 3: SSH Konfiguration erstellen

Die Angaben sind den eigenen Verhältnissen anzupassen.

Schritt 4: Test

Mit dem folgenden Befehl erhält man die Verbindungsdaten des Remote-Server:

Um sich wieder abzumelden wird ausgeführt:

rsync

Die Syntax für den Datenaustausch lautet hier:

rsync -aP Quelle Ziel

Erläuterung

-aP: es werden die genauen Daten der Übertragung im Fenster angegeben

Quelle: Speicherort der Daten, die übertragen werden sollen

Ziel: Sicherungsort

Ob beim Ziel ein Slash "/" angegeben wird oder nicht, erweist sich im Test als wirkungslos, sollte jedoch bei den eigenen Sicherungsversuchen überprüft werden.

Ausgegeben wird beispielhaft:

Es gibt darüber hinaus eine Vielzahl von Einstellungen, die mit rsync eingesetzt werden können. Für eine 1:1-Kopie der Daten hat sich die Syntax in der Praxis bewährt.

Automatisierung

Skripte

Wer aufwendige Systeme pflegen muss, kann die Ausführung von Vorgängen in einem Script zusammen fassen.

Die Praxis hat jedoch gezeigt, dass dies für ein einfaches Backup bzw. eine Datensicherung aufgrund des damit verbundenen Risikos möglicher Fehler nicht die erste Wahl ist. Was eventuell an Zeitersparnis gewonnen werden kann, wird durch die Prozessprüfung und ggf. Fehlersuche wieder eingebüßt. Eine minimale Variante eines solchen Skriptes findet sich unter ubuntuusers.de

Wenn man aber keine überzogenen Vorstellungen an eine Automatisierung hat, dann können beispielsweise Batch-Dateien durchaus die zeitgesteuerte Datensicherung erleichtern und ermöglichen.

Ein eigenes Beispiel für rsync über den Standardport 22 mit zwei Verzeichnissen (Quelle-Ziel):

Quelle: Eigene Fassung basierend auf Beispielen von Manuthamutu, Magesh

Die Daten sind den eigenen Verhältnissen anzupassen.

In diesem Beispiel-Skript werden zwei Quell- und zwei Zielverzeichnisse abgeglichen und notwendige Kopien angefertigt. Die Verbindung der Kommandos erfolgt durch den Schalter "&", der die weitere Ausführung von rsync für eine zweite Ziel-Quelle-Sicherung bewirkt. Dieses Skript lässt sich demzufolge für weitere Sicherungen erweitern.

Rsync und Löschen

Der Schalter --delete und andere Modifikationen sollten zur Ausführung von rsync jedoch nicht automatisiert freigegeben werden. Es besteht durchaus das Risiko des Datenverlustes.

Besser erscheint die Nutzung anderer Kommandos, wie im o.a. eigenen Beispiel angeführt. Das Löschen von Dateien ist hier bewusst deaktiviert.

Crontab

Da die Anmeldung auf einem Remote Server wie oben beschrieben eingerichtet ist, lassen sich automatische Backups und Datensicherungen im Hintergrund als Cronjob ausführen. Bedingung ist: 1. Quelle und Ziel müssen eingeschaltet sein, 2. die Job-Einzelheiten müssen in der eigenen Crontab eingetragen sein.

Dazu öffnet man im Terminal die Datei crontab:

Die Auswahl 1 bestätigen und die folgenden Angaben in die Datei kopieren und die Datei speichern/schließen:

Die Beispieldaten sind den eigenen Verhältnissen anzupassen.

Unter Nutzung des o.a. Skriptes lautet die Eintragung:

Log-Datei

Will man die Ausgabe in einer .log festhalten, dann wird folgende Sequenz an die obige Zeile angehängt, wodurch auch die Änderungen und Fehler aufgeführt werden:

>> /home/test/log/backup.log 2>&1

Mit einer angelegten .log kann das Beispiel dann so aussehen:

Dieser Eintrag bedeutet, dass alle Veränderungen in einer .log gespeichert werden. Das kann schnell unübersichtlich werden. Mit dem folgenden Eintrag erhält man eine separate .log für jede Datensicherung mit Angabe von Datum und Zeit in der Form: 20230504-190002-backup.log:

Beispiel für eine .log

Normalerweise werden die .log unter /var/log abgelegt. Da hier nicht immer die notwendigen Rechte eingerichtet sind, erscheint es sinnvoller, einen Ordner im Home-Verzeichnis anzulegen und die .log dort zu speichern.

Wirkung

Mo-So Backup/Datensicherung um 18:00 Uhr

Syntax:

Nach der durchgeführten Änderung ist crontab zu starten:

oder neu zu laden

Will man den Cronjob stoppen, dann erfolgt dies mit:

Bedingung

Die Automatisierung funktioniert nur, wenn Quelle und Ziel als (Client-Server) gestartet sind. Wenn ein Gerät darüber hinaus noch zu einem bestimmten Zeitpunkt gestartet und beendet werden soll, dann ist dies auf dem betreffenden Gerät im BIOS und als Programm einzustellen (wakeonlan). Hinweise hierzu im Blogbeitrag Automatischer Start und Shutdown.

Andere Betriebssysteme

Das Programm rsync ist auch für MacOS und Windows verfügbar, allerdings eingeschränkt:

- rsyncOSX: https://github.com/rsyncOSX/RsyncOSX

- Windows: Windows Subsystem Linux

Aussagen zur Funktionalität können im Internet recherchiert werden.

Community

Die hier vorgestellten Hinweise lassen sich nicht konkreten geistigen Eigentümern zuordnen. Deshalb wird hier dankend auf die Bereitstellung von Informationen in der Community hingewiesen.

Schlussbemerkung

Mit einem überschaubaren zeitlichen Aufwand in die Einrichtung sind die Ergebnisse einer zeitgesteuerten Automatisierung von Backup und Datensicherung durchaus überzeugend, zumal diese Alternative ohne zusätzliche Kosten für Closed-Source-Programme in Anspruch genommen werden kann. Die vorgestellten Programme sind darüber hinaus leicht nachträglich zu installieren.

Allerdings sind hierfür auch manuelle Eingriffe in das System erforderlich, die bei unsachgemäßer Anwendung das System schwer beeinträchtigen können. Das setzt eine gewisse Erfahrung und Affinität zum Soft- und Hardwareeinsatz gerade bei linux-basierten Systemen voraus.

Die vorgestellten Hilfsmittel und Vorgehensweisen zur regelmäßigen Datensicherung bieten auch dem insoweit ungeübten Nutzerkreis eine sichere Alternative, im eigenen Netzwerk und auch mit Fremddiensten wie GitHub oder GitLab ohne nicht gewollte Offenlegung die Daten auszutauschen.

Wenn das System steht, profitiert man von der eingestellten Sicherung der Daten.

Checkliste Datensicherung mit Rsync via SSH

1. Speicherbedarf für Backup und Datensicherung ermitteln

- was ist zu sichern: Audio, Video, Bilder und Text

- Festlegung der Größe des Speichers: Audio, Video benötigen ein vielfaches an Platz

- 3-fach-Regel: 1. Backup, 2. Datensicherung, 3. externe Aufbewahrung

- Berechnungsmöglichkeiten im Internet recherchieren

2. Installation der Software

- rsync, ssh, grsync, net-tools

- die Manual Pages der Hilfsprogramme nutzen

3. Automatisierung einrichten

- Schlüsselpaar erstellen

- öffentlichen Schlüssel auf Remote Server dauerhaft zur Authentifizierung vermerken

- Sicherung mit rsync via ssh testen

- eigene Crontab erstellen/ergänzen

- .log: eventuelle Fehlermeldungen prüfen

Quelle:

Artikel

Kirk, Wolfgang: Good Practice - 41: Einstieg in die Langzeit-Archivierung

Kirk, Wolfgang: Github via SSH

Kirk, Wolfgang: Installation Ubuntu-Server 22.04 mit Software-Raid 1 auf einem Tablet-PC

Avi: How to Exchange SSH Key for Password-less Authentication between Linux Servers? - Beitrag vom 30.11.2022 auf geekflare.com (https://geekflare.com/linux-ssh-key-exchange/)

Manuthamutu, Magesh: Four Simple Steps to Sync Your Backup to a Remote Server Using the rsync Command (https://www.2daygeek.com/bash-script-remote-backup-replication-using-rsync-command/)

Manual Page

rsync https://manpages.ubuntu.com/manpages/kinetic/man1/rsync.1.html

Grsync: https://www.opbyte.it/grsync/

net-tools https://www.mankier.com/package/net-tools

ssh: https://www.openssh.com/manual.html

 

Top

 

Wolfgang Kirk

 

Veröffentlicht: 2022-05-04 aktualisiert: 2024-07-19, 12:00 Uhr

no