rclone – rsync für die Cloud – Backups in Nextcloud und andere Cloud-Anbieter

Kein Kommentar Autor: Jürgen (jdo)

So zwischen den Jahren ist traditionell wenig los und ich nehme mir solche Räume immer gerne, um laufende Prozesse zu überprüfen. Eigentlich heißt es ja Never change a running system, aber Verbesserungen ab und zu sind nicht zu verachten. Backup ist immer ein Thema und meine selbst gebastelten Lösungen mir rsync machen ihren Job sehr ordentlich. Trotzdem ist mir kürzlich ein Tool unter die Augen gekommen, das mein Interesse geweckt hat. Es nennt sich rclone und die Entwickler bezeichnen es als rsync für Cloud Storage. Die Software eignet sich übrigens sehr gut als Backup-Lösung für den Raspberry Pi!

Das Tool rclone hat den Vorteil, dass Du damit Cloud-Speicher konfigurieren und direkt dorthin sichern kannst. Bei rsync muss auf dem anderen Rechner ebenfalls rsync installiert sein oder Du musst das Laufwerk vorher mounten – auf Deutsch einbinden. Rclone übernimmt den Teil des Einbindens für Dich. Sehr interessant ist, dass das Datensicherungs-Tool auch WebDAV unterstützt und damit kannst Du mitunter direkt in die Nextcloud sichern.

Backup-Tool rclone installieren

Zunächst einmal möchte ich anmerken, dass rclone kein reines Linux-Tool ist. Das Programm gibt es auch für Windows, macOS, diverse BSD-Varianten sowie Plan 9 und Solaris.

Rclone ist neben Linux mitunter auch für Windows und macOS verfügbar

Das Tool rclone ist neben Linux mitunter auch für Windows und macOS verfügbar

Ich benutze das auf Ubuntu 18.04 basierende Linux Mint 19.3 und hab einen Blick in das Repository der Distribution geworfen. Das Tool ist verfügbar, allerdings eine ältere Version. Sie bietet Unterstützung für diverse kommerzielle Cloud-Storage-Anbieter wie Google Drive oder Amazon S3, kann aber kein WebDAV. Will ich in die Nextcloud ohne den Sync-Client sichern, brauche ich das aber.

rclone 1.36 ist im Repository, kann aber kein WebDAV

rclone 1.36 ist im Repository, kann aber kein WebDAV

Lade ich mir nun die deb-Datei und die aktuelle Version von der Website der Entwickler herunter, habe ich plötzlich viel mehr Auswahl. Bei Linux Mint könnte ich die Datei durch einen Doppelklick installieren oder ich setze auf die herkömmliche Variante mit dpgk:

dpkg -i rclone-v1.50.2-linux-amd64.deb

Damit ist das Programm installiert.

Version 1.50 kann WebDAV und lässt sich damit an die Nextcloud anbinden

Version 1.50 kann WebDAV und lässt sich damit an die Nextcloud anbinden

Rufe ich nun das Programm auf und lasse mir alle möglichen Cloud-Storage-Optionen anzeigen, sieht die Sache schon wesentlich freundlicher aus.

Alternative Installation
Alternativ dazu ist es übrigens auch möglich, das Programm direkt über die Kommandozeile und curl zu installieren. Der Befehl sieht wie folgt aus:

curl https://rclone.org/install.sh | sudo bash

Die Entwickler bieten außerdem eine Beta-Version an, die Du wie folgt installieren kannst:

curl https://rclone.org/install.sh | sudo bash -s beta

rclone konfigurieren

Zunächst einmal musst Du rclone konfigurieren. Dazu feuerst Du den nachfolgenden Befehl ab:

rclone config

Da bei der Ersteinrichtung natürlich noch kein entferntes Storage konfiguriert sind, richten wir eines ein. Die Taste N (New Remote) hilft weiter.

Keine Remote-Speicher gefunden – bitte neues einrichten!

Keine Remote-Speicher gefunden – bitte neues einrichten!

Entscheidest Du Dich für die Einrichtung eines neuen Remote-Speichers, bekommst Du eine Liste mit möglichen Kandidaten.

Welche Cloud-Systeme unterstützt die Backup-Lösung?

Das Datensicherungs-Programm unterstützt eigentlich alles, was das Herz begehrt. Die Cloud-Prominenz ist vorhanden, aber auch lokale Speicher und traditionelle wie FTP.

Es werden jede Menge Cloud-Speicher unterstützt

Es werden jede Menge Cloud-Speicher unterstützt

Du siehst, dass Amazon, Google Drive, Dropbox, Microsoft OneDrive, SFTP- / SSH-Verbindungen und so weiter unterstützt sind. Die Nummer 31 ist WebDAV und genau das brauchen wir für ein Backup zur Nextcloud oder ownCloud.

Nimmst Du Nummer 31, gibst Du bei der Option 1 (gibt nur eine) die WebDAV-URL Deiner Nextcloud an. Als frei wählbaren Namen habe ich ganz banal Nextcloud genommen. Konfigurierst Du mehrere Remote-Storage-Systeme, sind sprechende Namen sicherlich geschickter

https://<Deine-Nextcloud>/remote.php/webdav/

Du findest die URL auch in Deiner Nextcloud. Sie ist im Dateimanager unten links hinter dem Zahnrad versteckt.

In den Einstellungen ist die WebDAV-URL versteckt

In den Einstellungen ist die WebDAV-URL versteckt

Hinterlegst Du sie bei der rclone-Konfiguration, bietet Dir die Software speziell Nextcloud, ownCloud oder Sharepoint an. Wähle ich nun Nextcloud, muss ich nur noch meinen Anwendernamen und mein Passwort hinterlegen (optional ein Token – brauche ich für meine rein interne Cloud nicht).

Nextcloud, ownCloud, Sharepoint oder doch etwas anderes?

Nextcloud, ownCloud, Sharepoint oder doch etwas anderes?

Damit ist Deine Nextcloud bereits als Remote-Speicher eingerichtet. Du kannst den Inhalt bereits abfragen (Du erinnerst Dich, dass mein Remote-Storage Nextcloud heißt):

rclone ls Nextcloud:

oder ein bisschen spezieller

rclone ls Nextcloud:SofortUpload/Camera/2019/

Nun zeigt mir die Software den Inhalt aus dem entsprechenden Ordner an – inklusive Unterordner. Das sieht so aus:

Ein spezielles Verzeichnis mit rclone auflisten

Ein spezielles Verzeichnis mit rclone auflisten

Kannst Du Dir mit tree statt ls auch anders anzeigen lassen.

tree ist vielleicht ein bisschen übersichtlicher

tree ist vielleicht ein bisschen übersichtlicher

Die Baumstruktur ist etwas übersichtlicher.

Lokales Storage bei rclone konfigurieren

Damit wir nun aber ein Backup von der lokalen Festplatte oder einem Ordner davon machen können, müssen wir den Speicher ebenfalls konfigurieren. Anstatt der 31 für Nextcloud nimmst Du nun aber 18 für Local Disk. Ich habe mein Storage hier ganz kreativ Lokal genannt.

Die Software richtet die komplette Festplatte ein. Es lohnt sich hier aber einen Blick auf die erweiterte Konfiguration (advanced) zu werfen. Das gilt vor allen Dingen, wenn Du mit symbolischen Links hantierst. Du stellst dort außerdem ein, wie Groß- und Kleinschreibung behandelt wird.

Für einen Test habe ich das Verzeichnis rclone-test angelegt und dort zwei Dateien erstellt. Das kann ich nun abfragen:

rclone ls Lokal:/home/bitblokes/rclone-test/

und das ist das Ergebnis

Das lokale Verzeichnis lässt sich aufrufen

Das lokale Verzeichnis lässt sich aufrufen

Die Dateien sind deswegen leer (0), weil sie einfach mit touch erstellt wurden – nur falls Du Dich gewundert hast.

Nun habe ich ein lokales Verzeichnis und ein Remote-Storage. Also kann ich das Backup durchführen. Die Frage ist nur, was mache ich oder welche Optionen habe ich.

Was kann mir die Sync-Software bieten?

Eine Liste mit den verfügbaren Befehlen bekommst Du, indem Du das Programm einfach ohne Parameter aufrufst. Weiterhin gibt es eine Dokumentation, die Du via

man rclone

aufrufen kannst. Dort sind die Befehle natürlich auch hinterlegt.

Alle für rclone verfügbaren Befehle

Alle für rclone verfügbaren Befehle

Für eine Datensicherung sind wohl in erster Linie copy und sync interessant. Bei copy kopiert die Software einfach Dateien und überspringt bereits kopierte. Mit sync hältst Du Quelle und Ziel identisch. Im Gegensatz zu copy löscht das Programm auch Dateien, sollten sie in der Quelle nicht mehr vorhanden sein.

Also kopieren wir mal unsere Daten. Dafür habe ich auf der Nextcloud den Ordner rclone-backup angelegt:

rclone copy Lokal:/home/bitblokes/rclone-test/ Nextcloud:/rclone-backup/

Das hat funktioniert – sehr schön.

Das Kopieren der Daten hat geklappt.

Das Kopieren der Daten hat geklappt.

Lösche ich lokal nun die Datei test1 und führe den Befehl abermals aus, ändert sich auf der Nextcloud nichts. Benutze ich anstelle von copy den Befehl sync, wird die Datei auch auf der Nextcloud entfernt.

rclone sync Lokal:/home/bitblokes/rclone-test/ Nextcloud:/rclone-backup/

Quelle und Ziel sind synchronisiert. Die Datei test1 ist damit auch aus der Nextcloud verschwunden.

Bei sync werden Quelle und Ziel identisch gehalten

Bei sync werden Quelle und Ziel identisch gehalten

Es ist oft sinnvoll, Quelle und Ziel zu synchronisieren, weil sich sonst auf dem Backup-Server allerlei Unrat ansammelt. Natürlich gibt es auch Situationen, in denen alte Dateien archiviert werden sollen.

Duplikate auf Google Drive finden
Benutzt Du das Programm übrigens mit Google Drive, könnte der Befehl dedupe nützlich sein. Das Programm sucht nach Duplikaten und löscht sie oder benennt sie um. Der Vorgang ist per Standard interaktiv und deswegen ungefährlich.

Eine grafische Oberfläche

Ist Dir die Kommandozeile unheimlich, kannst Du rclone auch mit der Maus über ein GUI steuern. Dazu führst Du den nachfolgenden Befehl aus:

rclone rcd --rc-web-gui

Nun lädt die Software das aktuelle GUI von GitHub herunter und startet es in Deinem Standard-Webbrowser. Das sieht so aus:

rclone als GUI im Webbrowser

rclone als GUI im Webbrowser

Logisch finde ich meine vorher via CLI eingerichteten Remote-Speicher wieder.

Remote-Speicher im GUI

Remote-Speicher im GUI

Das GUI funktioniert natürlich nur auf dem Desktop, wenn ein Browser vorhanden ist. Möchtest Du die Backup-Software zum Beispiel auf einem Server ohne grafische Oberfläche oder auf einem headless Rasperry Pi einsetzen, ist der Ansatz via Kommandozeile natürlich top.

Was ist der Vorteil gegenüber dem Sync-Client der Nextcloud?

Wie gerade erwähnt ist der Einsatz eines Sync-Clients für einen Server nicht praktikabel. Setzt Du auf Deinem Desktop nur den Sync-Client ein, ist das auch nicht wirklich ein Backup. Sobald Deine Daten kompromittiert oder beschädigt werden, synchronisieren sie sich auf die Nextcloud. Klar gibt es eine Versionierung, aber ein Backup ersetzt die Nextcloud eigentlich nicht.

Mit rclone kannst Du sie aber als Backup-Lösung nehmen. Vielleicht legst Du Archive mit einem Zeitstempel an, das Du dann auf die Nextcloud synchronisierst.

/bin/tar czvf /Pfad/zum/Backup-Verzeichnis/etc-$(date +%Y-%m-%d).tar.gz /etc/

Der Einsatz von rclone hat natürlich genau wie rsync den Vorteil, dass Du das Programm in eigenen Scripts verwenden kannst. Der Einsatz in Cronjobs funktioniert wunderbar und so weiter. Allerdings musst Du Dich nicht mit den Eigenheiten von rsync quälen und Dir darüber den Kopf zerbrechen.

Mit Cronjobs kannst u sehr genau steuern, wann die Synchronisation oder das Backup durchgeführt werden soll. Normalerweise wählst Du einen Zeitpunkt außerhalb der Spitzenzeiten. Hier kommt es aber natürlich auf deine Backup-Strategie an und wie viele Daten oder besser gesagt welche Mengen im Durschnitt gesichert werden.

Die Software sichert übrigens auch versteckte Dateien und Verzeichnisse mit. Die Software kann noch viel mehr. Von daher empfehle ich bei Interesse, unbedingt einen Blick in die Dokumentation zu werfen.

Möchtest Du Daten zum Beispiel von einem Raspberry Pi, Linux-Server, Linux-Desktop und so weiter automatisch in die Cloud sicher, ist rclone auf jeden Fall einen Blick wert. Zumindest ist es gut zu wissen, dass es das Programm gibt.

Sehr gute Lösung für Raspberry Pi

Wie Dir vielleicht in der Grafik mit den Downloads aufgefallen ist, gibt es die Software auch für die Architekturen ARM 32-Bit und ARM 64-Bit. Das bedeutet natürlich, dass sie unter Raspbian auf dem Raspberry Pi läuft. Ich habe auf einem meiner headless Pis (der selbst gebastelte VPN-Router, um genau zu sein) die alternative Installations-Methode via curl benutzt und auch das klappt problemlos. Der Download ist übringes deswegen so langsam, weil ich vergessen habe, wondershaper zu deaktivieren. Das ist bei mir aktiv, weil mich nervt, dass ich bei diversen Streaming-Anbietern keine Qualität einstellen kann und damit keine Kontrolle über den Verbrauch habe.

Installation von rclone auf einem Raspberry Pi

Installation von rclone auf einem Raspberry Pi

Auf jeden Fall kann ich nun die Konfiguration meiner Pis automatisch in die Nextcloud sichern lassen. Die dafür benutzten Verzeichnisse muss ich ja nicht mit meinem Desktop-Client synchronisieren. Ich darf ja selbst bestimmen, welche Ordner synchronisiert werden sollen und welche nicht.

Datensicherungen von mehreren Geräten sind auch überhaupt kein Problem. Beim Anlegen einer Datenstruktur hat aber jeder so seine Eigenheiten. Wie Du Dich an dieser Stelle organisierst, musst Du selbst wissen.

Ich werde meine laufenden Backup-Prozesse nicht umstellen, sie funktionieren ja. Kommen neue dazu oder ergeben sich Umstellungen, steige ich sehr wahrscheinlich von rsync auf rclone um.

Backups sind eine eigene Wissenschaft. Überlege Dir einfach, was zu Dir passt und der Feinschliff folgt im Laufe der Zeit. Ganz banal ab und zu die USB-Festplatte aus dem Schrank holen und dort wichtige Daten offline sichern, mache ich übrigens auch. Bei 6 TByte für unter 150 Euro* gibt es keine faulen Ausreden für Datenverlust, nur Bequemlichkeit oder Faulheit. In unserer digitalen Zeit gibt es nicht genug Backups, sondern nur schlecht organisierte und chaotische Datensicherung.

Backup-Tipp
Weil wir gerade beim Thema Backup sind: Threema lässt sich auch wunderbar auf die Nextcloud sichern!

Nette Pi-Konstellation

Suchst Du ein VPN für den Raspberry Pi? NordVPN* bietet einen Client, der mit Raspberry Pi OS (32-Bit / 64-Bit) und Ubuntu für Raspberry Pi (64-Bit) funktioniert.




 Alle Kommentare als Feed abonnieren

Kommentare sind geschlossen.