Backups wichtiger Daten müssen größere Katastrophen überstehen. Rclone ermöglicht ohne viel Aufwand Backups in die Cloud und unterstützt dabei viele Dienste.
Wir leben alle in der Hoffnung, niemals in die Situation zu kommen, dass unser Hab und Gut von Diebstahl, Feuer, Wasser oder Naturkatastrophen zerstört wird. Eine Garantie dafür gibt es allerdings nicht. Für unsere wichtigsten digitalen Daten ergibt sich daraus, dass wir sie auch außerhalb unserer vier Wände sichern sollten, am besten gleich an mehreren Orten. Dabei hilft das auf Rsync basierende Werkzeug Rclone [1].
Das Kommandozeilenprogramm Rclone tätigt eine Einwegsynchronisation zwischen von Ihnen lokal definierten Datensätzen und einer Cloud. Führen Sie es ein zweites Mal aus, sucht es im lokalen Dateisystem nach Änderungen und lädt dann nur noch diese inkrementell in die Cloud Ihrer Wahl hoch. Dabei implementiert es einen Großteil der Optionen und Syntax von Rsync. Darüber hinaus bietet es zusätzliche Kommandos, um die einzelnen Dienste optimal zu unterstützen. Wer nicht gerne auf der Kommandozeile hantiert, dem bietet Rclone ein grafisches Frontend.
Die bei Rsync vorhandene Möglichkeit der Zwei-Wege-Synchronisation bietet Rclone nicht: Das bedeutet, dass es zwar lokal gelöschte Dateien auch in der Cloud löscht, aber nicht umgekehrt. Zudem sichert das Programm bei Änderungen an Dateien keine älteren Versionen. Es überschreibt also geänderte Dateien, sofern der gewählte Dienst nicht eine eigene Versionierung bietet, wie etwa Google Drive oder Dropbox. Einen Weg, das zu umgehen, bietet die Funktion Backup-Dir, die geänderte oder gelöschte Dateien in ein eigenes Verzeichnis verschiebt [2].
Das in Go geschriebene Werkzeug, das sich in den Archiven der meisten Distributionen findet, kommt mit zahlreichen Cloud-Dienstleistern und Protokollen zurecht. Zu den unterstützten Anbietern zählen unter anderem die Open-Source-Clouds Nextcloud, Owncloud und Openstack Swift sowie die kommerziellen Angebote Amazon S3, Box, Dropbox, Google Drive, Pcloud und Microsoft Onedrive [3].
Zudem beherrscht Rclone die Protokolle HTTP, FTP, SFTP und WebDAV, sodass sich auch Web- und Fileserver sowie NAS-Geräte über Standardprotokolle als Backend einbinden lassen. Das Programm steht in Varianten für x86-, ARM- und MIPS-Architekturen und außer für Linux auch für MacOS, Windows, BSD, Plan 9 und Solaris sowie für NAS-Server von QNAP und Synology bereit.
Derzeit steht die Entwicklung bei Version 1.46. Hängt die von Ihnen genutzte Distribution hier weit zurück – Debian “Stable” liefert zum Beispiel die Version 1.35 aus – lässt sich Rclone in der neuesten Ausgabe über den Befehl curl https://rclone.org/install.sh | sudo bash direkt installieren. Eventuell müssen Sie Curl zuvor via sudo apt install curl einspielen.
Wenn wir im Folgenden allgemein von entfernten Rechnern sprechen, verwenden wir den Begriff “Remote” und bezeichnen damit die Verbindung zu einem bestimmten Ordner auf einem bestimmten Cloud-Service.
Remotes erstellen
Rclone steuern Sie über das gleichnamige Kommando rclone und einen angehängten Befehl mitsamt Optionen (siehe Tabelle “Die wichtigsten Rclone-Befehle”). Für den Einstieg rufen Sie die Konfiguration mit rclone config auf. Dabei bietet der Einrichtungsassistent eine Reihe von Optionen an: Mit [S]+ setzen Sie ein Passwort, mit [Q] beenden Sie das Programm.
Mit [N] richten Sie den ersten Remote-Zugang ein – wählen Sie als Erstes diese Option. Da Rsync es erlaubt, mehrere Remotes zu konfigurieren, sollten Sie im ersten Schritt einen aussagekräftigen Namen verwenden. Danach wählen Sie anhand einer Nummer den gewünschten Dienst oder das Protokoll aus (Abbildung 1).

Abbildung 1: Im interaktiven Konfigurationsdialog legen Sie einen Namen für den Remote-Zugang an und wählen den gewünschten Dienst oder das Protokoll aus der Liste aus.
|
Kommando |
Funktion |
|
|---|---|---|
|
|
öffnet die Konfiguration |
|
|
|
kopiert Daten vom lokalen System in den Cloud-Speicher |
|
|
|
|
synchronisiert Quelle und Ziel |
|
|
hängt Drive lokal in das Dateisystem ein |
|
|
|
verschiebt Daten von Quelle zu Ziel |
|
|
|
entfernt den Inhalt eines Pfads |
|
|
|
entfernt den Pfad samt Inhalt |
|
|
|
listet alle Objekte im Pfad mit Größenangabe |
|
|
|
erstellt Md5sum-Prüfsummen für alle Objekte im Pfad |
|
|
|
Anzahl und Gesamtgröße aller Objekte in Remote:Pfad |
|
|
|
prüft die Integrität eines verschlüsselten Remote |
|
|
Diese und andere Befehle zeigen nach Eingabe von |
||
Google Drive im Test
In unserem Praxistest richten wir Rclone mit Google Drive als proprietärem Anbieter auf einem Notebook ein. Auf den Servern von Google möchten wir private Daten selbstverständlich nicht unverschlüsselt ablegen. Deshalb lassen wir die zu sichernden Daten nach einem ersten offenen Test verschlüsselt von Rclone hochladen.
Im Test erhält der Remote-Speicher den Namen gdrv, danach wählen Sie die entsprechende Nummer für den gewünschten Dienst (hier “Google Drive” mit der Eingabe von 12) aus der Liste aus. Für jeden Anbieter und jedes Protokoll gibt es in der Dokumentation eine ausführliche englische Anleitung, so auch für Google Drive [3]. Die folgenden beiden Abfragen nach client_id und client_secret übergehen Sie mit der Eingabetaste.
Danach wählen Sie, ob Rclone vollen Zugriff auf alle Dateien des Online-Speichers erhalten soll oder nur auf die eigenen hochgeladenen Daten zugreifen darf. Zudem lässt sich der Zugriff so einschränken, dass Rclone nur lesen darf. Wir haben für den Test mit der Option 1 den vollen Zugriff ausgewählt. Die Frage nach der root_folder_id übergehen Sie dann ebenso wie die nach dem service_account_file, da Rclone die Wurzel selbst bestimmen kann.
Darf der das?
Zum Abschluss schadet es nicht, die erweiterte Konfiguration anzusehen – so lernen Sie die zusätzlichen Optionen kennen, zu denen Sie in der Dokumentation weitere Informationen finden [4].
Danach gelangen Sie zu dem Punkt, der den Zugriff von Rclone auf den Google Drive Account erlaubt. Dazu beantworten Sie die Frage nach auto config mit [Y] und öffnen damit die Google-Anmeldung in einem Browserfenster. Nach der Anmeldung bestätigen Sie, dass Rclone auf Drive zugreifen darf (Abbildung 2). Im Terminal erscheint daraufhin die Meldung Got Code, woraufhin Sie den Browser wieder schließen dürfen.

Abbildung 2: Der Dialog erlaubt Rclone den Zugriff auf Ihre Google-Drive-Instanz. Kommt der Kontakt nicht zustande, hilft die manuelle Eingabe des Links.
Im Test klappte die automatische Methode jedoch nicht. Es gelang zwar, sich bei Google anzumelden, der Kontakt mit Rclone kam jedoch nicht zustande. Ein zweiter Versuch mit manueller Eingabe der URL http://127.0.0.1:53682/auth führte dann zum Erfolg und damit auch zum Abschluss der Konfiguration dieser Remote. Um Rclone headless zu betreiben, also ohne die Möglichkeit, einen Browser aufzurufen, erzeugen Sie über einen Google Service Account [5] einen API-Schlüssel im JSON-Format und geben ihn in der erweiterten Konfiguration an.
Damit ist der Einrichtungsassistent abgeschlossen. Sie haben nun die Wahl, weitere Remotes zu konfigurieren oder die Konfiguration mit einem Passwort zu schützen. Dazu starten Sie die Konfiguration erneut und wählen [S] für “set configuration password”. Anstatt eines Passworts machen Sie die Konfigurationsdatei alternativ mit chmod 600 ~/.config/rclone/rclone.conf nur für Ihren Benutzer lesbar.
Erster Test
Ein erster Test soll zeigen, ob bis hier alles geklappt hat. Wählen Sie dazu lokal eine kleine Textdatei aus, und kopieren Sie sie mit rclone copy meintext.txt gdrv:meintext.txt in den Cloud-Speicher. Das kann eine Weile dauern, da Rclone ohne Optionen sehr langsam arbeitet. Unser Text erreichte ohne Parameter lediglich eine Übertragungsgeschwindigkeit von 58 Bytes/s. Das erfuhren wir durch die Angabe des Parameters -P (Abbildung 3). Der Kasten “Rclone beschleunigen” informiert über Parameter, die Sie den Rclone-Befehlen zur Beschleunigung mitgeben sollten.

Abbildung 3: Rclone arbeitet ohne Optimierung sehr langsam. Google bremst Sie hier aus, sofern Sie keine zusätzlichen Parameter angeben.
Rclone beschleunigen
Die Anzahl der parallelen Dateitransfers geben Sie über --transfers an. Um etwa einen Ordner mit 50 Dateien zu sichern, geben Sie --transfers=25 an. In der Regel schadet hier ein zu hoher Wert nicht.
Der Parameter --checkers bestimmt die Anzahl der parallel laufenden Prüfprozesse. Sie ermitteln alle hochzuladenden Dateien und vergleichen sie mit dem, was sich bereits im Cloud-Speicher befindet. Auf diese Weise klammert das System unveränderte Daten von der Übertragung aus. Beim Wert orientieren Sie sich an der Angabe von --transfers.
Über --drive--chunk-size legen Sie fest, wie viel Arbeitsspeicher Rclone beim Hochladen verwendet. Die Entwickler empfehlen 16 MByte, die Sie als -drive--chunk-size=16384k> angeben. Experimente mit höheren Werten schaden jedoch nicht. Wenn Sie dabei zusätzlich den Parameter -P (--progress) angeben, erhalten Sie genaue Werte über die Dauer des Uploads. Noch mehr Informationen liefert Rclone mit den Optionen -v oder -vv.
Gas geben
Um die Wirkung der Beschleunigungsmaßnahmen zu erforschen, ließen wir Rclone einen Ordner mit zehn Bildern mit einer Größe von 40 MByte in einen am Ziel zu erstellenden Ordner sichern (Listing 1). Die mittlere Datenrate während der Sicherung pendelte sich im Test bei 500 KByte/s ein; bei einer Verdoppelung der Chunk-Size kamen wir auf rund 620 KByte/s.
Listing 1
$ rclone copy -P --transfers=10 --checkers=10 --drive-chunk-size=16384 schöne_bilder gdrv:/Bilder/schöne_bilder
Danach ergänzten wir im lokal gespeicherten Bilderordner drei Dateien mit einer Größe von 12 MByte und starteten die Sicherung mit demselben Befehl erneut. Da Rclone nun nur die neu hinzugekommenen Daten sicherte, war der Vorgang in rund 25 Sekunden erledigt. Beim Zurücksichern von Google Drive auf die lokale Instanz braucht es keine Parameter. Das Kommando gleicht ansonsten dem des Copy-Befehls, Sie müssen lediglich Quelle und Ziel vertauschen.
Copy und Sync
Neben dem Kopieren erlaubt Rclone auch das Synchronisieren von Dateien zwischen Client und Server. Der Unterschied zwischen copy und sync liegt darin, dass Letzteres das Ziel mit der Quelle Datei für Datei abgleicht und dabei auf dem Ziel alles löscht, was nicht im Quellverzeichnis vorhanden ist, von dem Sie das Kommando absetzen.
Rufen Sie einen Sync-Befehl also aus dem falschen Verzeichnis auf, droht der Verlust wichtiger Daten. Die Option sync sollten Sie daher am besten zuvor mit dem Parameter --dry-run testen. Mit copy löschen Sie lokal keine Daten; allerdings überschreibt der Prozess die Sicherung auf dem Cloud-Speicher. Möchten Sie ein Backup erhalten, lässt sich dieser Vorgang durch das bereits erwähnte Backup-Dir umgehen.
Eine weitere Möglichkeit, eine Verbindung mit Rclone herzustellen, besteht darin, Google Drive als Dateisystem per FUSE ins eigene Home-Verzeichnis einzuhängen. In unserem Beispiel haben wir dort den Ordner cloud/ erstellt und dann den zuvor konfigurierten Google Drive Account dort eingehängt (Listing 2).
Listing 2
$ rclone mount gdrv:Bilder ~/cloud
Browser oder Terminal
Nach Kopier- oder Sync-Aktionen sehen Sie im Browser, ob der Transfer erfolgreich war. Rufen Sie dazu einfach das Web-Frontend des entsprechenden Diensts auf (Abbildung 4). Schneller geht das mit dem Kommando rclone lsd gdrv:/Bilder aus dem Terminal heraus. Mit dem Aufruf zeigt Rclone die letzte Aktion in Bezug auf den angegebenen Ordner an.

Abbildung 4: Nach dem Upload lässt sich im Browser kontrollieren, ob Rclone die Daten vollständig hochgeladen hat.
Möchten Sie noch mehr Informationen erhalten, nutzen Sie rclone ls gdrv:/Bilder, was jede übertragene Datei samt ihrer Größe auflistet (Abbildung 5). Lassen Sie bei beiden Befehlen den Ordner weg (unter der Voraussetzung, dass Sie zuvor während der Konfiguration die Option 1 für vollständigen Zugriff auf den Cloud-Speicher gewählt haben), dann listet Rclone alle Ordner beziehungsweise Dateien der Drive-Instanz auf.

Abbildung 5: Handelt es sich um reine Daten, die Sie nicht visuell kontrollieren möchten, fällt die Kontrolle im Terminal leichter als im Browser.
Verschlüsselung muss sein
Wie schon erwähnt, sollten Sie Daten auf Google Drive zum Schutz Ihrer Privatsphäre nur verschlüsselt ablegen. Nachdem Sie nun wissen, dass Rclone wie gewünscht funktioniert, geht es nun an die automatische Verschlüsselung während des Uploads [6].
Dazu rufen Sie nochmals rclone config auf, wählen mit 9 das Erstellen einer neuen Remote vom Typ Encrypt/Decrypt a remote. Hier durchlaufen Sie eine ähnliche Konfiguration wie zuvor. Sie fragt neben Passwörtern auch ab, ob das System auch Datei- und Ordnernamen verschlüsseln soll (Abbildung 6). Im Rahmen des Tests haben wir diese Remote secret genannt.

Abbildung 6: Mit einer eigenen Remote verschlüsselt Rclone Ihre Daten während des Hochladens, sodass diese auch auf proprietären Clouds vor fremden Einblicken sicher sind.
Als Ziel gaben wir gdrv:Bilder an und wiesen Rclone an, zwar Dateinamen zu verschlüsseln, nicht aber die Ordnernamen. Daraufhin sicherten wir mit dem Kommando aus der ersten Zeile von Listing 3 die Testdaten, die wir der besseren Übersicht halber zuvor im Online-Speicher löschten. Danach waren die verschlüsselten Dateinamen sowohl im Terminal (Zeile 2) als auch im Browser (Abbildung 7) zu sehen.

Abbildung 7: Nach dem Hochladen mit aktivierter Verschlüsselung sieht der Browser und somit auch der Anbieter des Cloud-Speichers nur noch kryptische Dateinamen.
Listing 3
$ rclone copy schöne_bilder/ secret:Bilder $ rclone ls gdrv:Bilder 3834832 Bilder/5co9cq3pkqjau727p1tcdolha8 4359248 Bilder/5lbdr721ep1cqiugc1ij09qvq8 3965936 Bilder/bpbpke6lsucv7p5tdcq5ac080c [...]
Grafisch arbeiten
Falls Sie Rclone mit einer grafischen Oberfläche nutzen möchten, greifen Sie zum Frontend Rclone Browser [7], das einen Großteil der Rclone-Funktionen abbildet (Abbildung 8). Das Programm erlaubt das Hoch- und Herunterladen von Daten sowie das Einhängen von Google Drive ins Home-Verzeichnis und unterstützt dabei viele Parameter. Bei mehreren genutzten Remotes verwalten Sie diese gemeinsam innerhalb der GUI.

Abbildung 8: Beim Hochladen unterstützt Rclone Browser die wichtigsten Optionen der Kommandozeilenanwendung.
Rclone Browser findet sich bei Debian und Ubuntu in den Paketquellen. Haben Sie Rclone allerdings selbst gebaut, sollten Sie auch Rclone Browser in der aktuellsten Version kompilieren: Die Paketverwaltung richtet zusammen mit der GUI auch die Rclone-Version aus dem Repo ein, die dem aktuellen Entwicklungsstand hinterherhinkt.
Im Test erwies sich die grafische Oberfläche obendrein als Bremsklotz: Bei Tests über mehrere Tage hinweg erzielte Rclone Browser nur wenig mehr als die Hälfte des Durchsatzes, der per Kommandozeile zu erreichen war. Eine Erklärung hierfür fanden wir nicht. Sie sollten also einen großen initialen Upload immer per Terminal starten.
Fazit
Im Test erwies sich Rclone als zuverlässiger Backup-Client für die Cloud. Beim Hochladen von Daten zu Google Drive bremst allerdings Google die Verbindung trotz ausreichend schneller Datenleitung aus. Ansonsten bietet Rclone eine einfache Möglichkeit, wichtige Daten über verschiedene Protokolle bei diversen Anbietern verschlüsselt abzulegen.
Rclone ist auch in viele andere Projekte bereits integriert [8]. Es lässt sich unter anderem per Cron, Systemd-Timer oder skriptgesteuert aufrufen; Beispiele hierfür bietet Jobber.sh [9]. Zudem beherrscht Rclone den Datenabgleich zwischen zwei Servern ohne den Umweg über eine lokale Instanz. Wir konnten hier die Möglichkeiten der mächtigen Anwendung nur oberflächlich anreißen, die sehr ausführliche Dokumentation führt tiefer in die Materie ein. Alternativen zu Rclone finden Sie unter anderem in Odrive, Goodsync oder Raidrive.
Glossar
-
FUSE
-
Filesystem in Userspace. FUSE erlaubt Benutzern mit Standardrechten das Einbinden von Dateisystemen in die Ordnerstruktur des Systems. Die Technik kommt in der Regel bei mobilen Massendatenspeichern oder Netzwerklaufwerken zum Einsatz.
Infos
-
Rclone: https://rclone.org
-
Backup-Dir: https://rclone.org/docs/#backup-dir-dir
-
Dienste: https://rclone.org/docs
-
Google Drive: https://rclone.org/drive
-
Google Service Account: https://console.developers.google.com/projectselector2/iam-admin/serviceaccounts?pli=1
-
Rclone Crypt: https://rclone.org/crypt
-
Rclone Browser: https://github.com/mmozeiko/RcloneBrowser
-
Projekte mit Rclone: https://github.com/ncw/rclone/wiki/Third-Party-Integrations-with-rclone
-
Jobber.sh: https://github.com/wolfv6/rclone_jobber





