So verwenden Sie rclone zum Sichern auf Google Drive unter Linux

Einen offiziellen Linux-Client für Google Drive gibt es zwar noch nicht, doch mit dem Kommandozeilen-Tool rclone können Sie trotzdem direkt von der Befehlszeile aus Backups Ihres Google Drives erstellen. Wir zeigen Ihnen, wie das geht.

Google Drive unter Linux – wo ist es?

Trotz der vielversprechenden Linux-Unterstützung, die Google bereits 2012 ankündigte, gibt es bis heute keine Anzeichen dafür, dass Google einen nativen Linux-Client für Google Drive entwickeln wird. Es gibt zwar einige inoffizielle Lösungen von Drittanbietern wie Insync, overGrive und ODrive. Auch einige Dateibrowser, wie zum Beispiel Dateien in GNOME, ermöglichen eine Integration mit Google Drive.

Die Drittanbieter-Anwendungen sind kommerzielle Produkte, die einen direkten Kauf oder ein Abonnement erfordern. Sie funktionieren zwar gut und sind nicht allzu teuer, wobei overGrive sogar eine kostenlose Version mit eingeschränkten Funktionen anbietet.

Was aber, wenn Sie Backups über die Kommandozeile erstellen und ausführen möchten? Oder diese Funktionalität in Skripte integrieren möchten? Das alles ist dank einer beeindruckenden Anwendung namens rclone möglich. Tatsächlich erlaubt rclone das Sichern, Herunterladen und Synchronisieren von Dateien mit über vierzig verschiedenen Cloud-Diensten. Man könnte es als rsync für die Cloud bezeichnen.

Installation von rclone

rclone ist wahrscheinlich nicht standardmäßig auf Ihrem Linux-Rechner installiert. Glücklicherweise gibt es ein Installationsskript, das auf allen Distributionen funktionieren sollte. Der Installationsprozess verwendet curl. Auf den Computern, die für diesen Artikel verwendet wurden, war curl unter Fedora 31 und Manjaro 18.1.0 bereits installiert, während es unter Ubuntu 18.04 LTS nachinstalliert werden musste.

Unter Ubuntu installieren Sie curl mit folgendem Befehl:

sudo apt-get install curl

Nachdem curl installiert ist, installieren Sie rclone mit diesem Befehl:

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

Nach erfolgreicher Installation von rclone wird eine Erfolgsmeldung angezeigt.

Damit wurde das rclone-Programm auf Ihrem Linux-System installiert. Im nächsten Schritt wird der Einrichtungsprozess durchgeführt und rclone authentifiziert, um auf Ihr Google Drive zuzugreifen.

Einrichten einer rclone Remote-Verbindung

Verbindungen zu Cloud-Diensten werden in der rclone-Welt als „Remotes“ bezeichnet. Wir müssen eine für Google Drive erstellen. Starten Sie den rclone-Konfigurationsprozess mit diesem Befehl:

rclone config

Im Konfigurationsprozess werden einige Fragen gestellt. Lassen Sie sich davon aber nicht entmutigen, da viele Fragen mit den Standardwerten beantwortet werden können, die Sie einfach mit „Enter“ übernehmen.

rclone informiert Sie, dass noch keine Remotes konfiguriert sind. Drücken Sie „n“ und dann „Enter“, um eine neue Remote zu erstellen. Sie werden aufgefordert, einen Namen einzugeben. Wir nennen es „Google-Drive“. Sie können aber jeden beliebigen Namen verwenden.

In einem langen Menü können Sie den Speicher-Typ auswählen, zu dem Sie eine Remote-Verbindung herstellen möchten.

Scrollen Sie in der Liste nach unten bis zum Eintrag für Google Drive und notieren Sie sich die dazugehörige Nummer.

In diesem Fall ist es die Nummer 13. Geben Sie diese als Speichertyp ein und drücken Sie „Enter“.

Sie werden aufgefordert, eine Google Anwendungs Client-ID einzugeben. Drücken Sie „Enter“, um den Standardwert zu übernehmen.

Danach werden Sie nach einem Client-Geheimnis für die Google-Anwendung gefragt.

Drücken Sie auch hier einfach „Enter“. Sie werden aufgefordert, den Bereich anzugeben, den rclone bei der Ausführung auf Ihrem Google Drive haben soll. Drücken Sie „1“ und dann „Enter“.

Bei der „ID des Stammordners“ drücken Sie einfach „Enter“.

Bei der Eingabeaufforderung „Service Account Credentials“ drücken Sie „Enter“.

Bei der Eingabeaufforderung „Erweiterte Konfiguration bearbeiten“ drücken Sie einfach „Enter“. Wählen Sie im Menü „Use auto config“ mit „y“ und bestätigen Sie mit „Enter“.

Dadurch kommuniziert rclone mit Ihrem Google Drive und startet Ihren Browser, damit Sie rclone die Erlaubnis erteilen können, mit Ihrem Google Drive zu interagieren.

Klicken Sie im Browserfenster auf das Google-Konto, das Sie verwenden möchten.

Klicken Sie auf die Schaltfläche „Zulassen“, um rclone den Zugriff auf Ihr Google Drive zu gewähren.

Nach erfolgreicher Authentifizierung wird die Meldung „Erfolg!“ im Browserfenster angezeigt. Sie können den Browser schließen und zum Terminalfenster zurückkehren.

Geben Sie bei der Eingabeaufforderung „Dies als Teamablage konfigurieren“ „n“ ein und drücken Sie dann „Enter“.

Geben Sie im Menü „Ja, Bearbeiten, Löschen“ „y“ ein und drücken Sie anschließend „Enter“.

Geben Sie im letzten Menü „q“ ein und bestätigen Sie mit „Enter“.

Das rclone Backup-Skript

rclone ist eine sehr funktionsreiche Anwendung. Das ist zwar gut, bedeutet aber auch, dass es viele Möglichkeiten gibt. Der folgende Befehl kopiert Dateien von Ihrem lokalen Computer in Ihr Google Drive. Es handelt sich um eine unidirektionale Kopie in die Cloud und keine bidirektionale Synchronisierung zwischen Google Drive und Ihrem lokalen Computer – obwohl rclone das auch kann. Wir verwenden diesen Befehl als eine grundlegende Form der Offsite-Sicherung.

Geben Sie das folgende Skript in einen Texteditor ein (oder kopieren Sie es) und speichern Sie es auf Ihrem Computer. Wir haben es gbk.sh genannt. Sie können es aber nennen, wie Sie möchten.

#!/bin/bash
  
/usr/bin/rclone copy --update --verbose --transfers 30 --checkers 8 --contimeout 60s --timeout 300s --retries 3 --low-level-retries 10 --stats 1s "/home/dave/Documents" "google-drive:LinuxDocs"

Die Parameter bedeuten Folgendes:

  • kopieren: Kopiert die Dateien vom lokalen Rechner zum Remote-Speicher und überspringt Dateien, die sich bereits im Remote-Speicher befinden.
  • –update: Überspringt alle Dateien im Remote-Speicher, deren Änderungszeit neuer ist als die der Datei auf dem lokalen Computer.
  • –verbose: Gibt Informationen zu jeder übertragenen Datei aus.
  • –transfers 30: Legt die Anzahl der parallel zu kopierenden Dateien fest.
  • –checkers 8: Legt fest, wie viele „Checker“ parallel laufen sollen. Checker überwachen die laufenden Übertragungen.
  • –contimeout 60s: Das Verbindungs-Timeout. Definiert, wie lange rclone versucht, eine Verbindung zum Remote-Speicher herzustellen.
  • –timeout 300s: Wenn eine Übertragung für diese Zeit inaktiv wird, wird sie als unterbrochen angesehen und beendet.
  • –retries 3: Nach so vielen Fehlversuchen wird der gesamte Kopiervorgang neu gestartet.
  • –low-level-retries 10: Ein Low-Level-Retry versucht, einen fehlgeschlagenen Vorgang zu wiederholen, wie z. B. eine einzelne HTTP-Anforderung. Dieser Wert legt fest, wie oft wiederholt werden soll.
  • –stats 1s: rclone kann Statistiken zu den übertragenen Dateien anzeigen. Dieser Wert legt fest, wie oft die Statistiken aktualisiert werden sollen (hier: jede Sekunde).
  • „/home/dave/Documents“: Das lokale Verzeichnis, das wir in den Remote-Speicher kopieren möchten.
  • „google-drive:LinuxDocs“: Das Zielverzeichnis im Remote-Speicher. Beachten Sie die Verwendung von „google-drive“, dem Namen, den wir dieser Remote-Verbindung während der rclone-Konfigurationssequenz gegeben haben. Beachten Sie auch den Doppelpunkt „:“, der als Trennzeichen zwischen dem Remote-Speichernamen und dem Verzeichnisnamen dient. Unterverzeichnisse werden mit dem üblichen Schrägstrich „/“ getrennt. Wenn das Zielverzeichnis nicht existiert, wird es erstellt.

Einige dieser Werte sind Standardwerte, aber wir haben sie hier aufgeführt, damit wir sie erklären können. Wenn Sie einen Wert ändern müssen, wissen Sie, welcher Parameter angepasst werden muss.

Machen Sie das Skript mit dem folgenden Befehl ausführbar:

chmod +x gbk.sh

Ausführen des Backup-Skripts

Unser Backup-Skript kopiert den Ordner „Documents“ auf unser Google Drive. In unserem Ordner „Documents“ befindet sich eine Sammlung von Notizen.

Wir können das Backup-Skript mit diesem Befehl starten:

./gbk.sh

Wir haben jede Sekunde um Statistik-Updates (--stats 1s) und auch um eine detaillierte Ausgabe (--verbose) gebeten. Daher ist es nicht überraschend, dass wir eine umfangreiche Bildschirmausgabe erhalten. Es ist in der Regel eine gute Idee, die ausführliche Ausgabe für neue Funktionen zu aktivieren, um mögliche Probleme zu erkennen. Sie können die Ausgabemenge reduzieren, sobald Sie sicher sind, dass alles reibungslos funktioniert.

Wir erhalten eine abschließende Zusammenfassung, die uns mitteilt, dass 60 Dateien ohne Fehler übertragen wurden. Die Übertragung hat etwa 24 Sekunden gedauert.

Schauen wir uns auf unserem Google Drive an, was im Cloud-Speicher passiert ist.

Ein Verzeichnis „LinuxDocs“ wurde erstellt. Das sieht vielversprechend aus. Wenn wir es öffnen, sehen wir, dass alle Dateien auf unser Google Drive übertragen wurden.

Mit rclone Dateien auf Google Drive anzeigen

Wir können mit rclone direkt aus dem Terminalfenster in den Ordner auf Google Drive schauen:

rclone ls google-drive:/LinuxDocs

Nur die Spitze des Eisbergs

Es ist großartig, dass wir diese Art von Kopie direkt von der Kommandozeile aus durchführen können. Wir können die Nutzung unseres Cloud-Speichers in Skripte integrieren und die Ausführung von Backup-Skripten mit Cron planen.

rclone bietet eine große Vielfalt an Befehlen. Wir empfehlen Ihnen, einen Blick in die Dokumentation und die ausgezeichnete Website zu werfen. Wir haben hier nur an der Oberfläche gekratzt, und etwas Lesen und Spielen mit rclone wird sich lohnen.

Streng genommen handelt es sich hierbei nicht um ein echtes Backup, sondern um eine externe Kopie Ihrer Dateien und Daten, was auf jeden Fall gut ist. Es ist jedoch nur eine Kopie der Dateien. Es bietet keine Versionierung oder andere Funktionen, die eine echte Backup-Lösung bieten würde.

Verwenden Sie rclone daher in Verbindung mit anderen Backup-Techniken. Als eine weitere Schicht in einer bestehenden Backup-Strategie ist rclone eine einfache Möglichkeit, Ihre Daten an einem geografisch von Ihrem Zuhause oder Büro entfernten Ort zu speichern. Und das ist immer eine gute Sache.