Springe zum Hauptinhalt

Rclone - ein Tool für Backups und die Synchronisation mit Netzwerkspeichern

Es ist nun schon rund sieben Jahre her, als ich in diesem Blogbeitrag das Tool sitecopy vorgestellt habe. sitecopy habe ich seinerzeit zur Synchronisation dieses Blogs, also zwischen lokalem Speicher und Webspace genutzt.

Irgendwann hat mein Provider darauf hingewiesen, dass die Datenübertragung per FTP aus Sicherheitsgründen nicht mehr genutzt werden sollte. Auf der Suche nach Alternativen bin ich dann auf Rclone gestoßen, mit dem ich neben der Synchronisation dieses Blogs inzwischen auch andere Aufgaben erledige, so z. B. die Synchronisation der (verschlüsselten) Passwortdatei meines Passwort-Managers mit mehreren Cloud-Speichern.

Rclone ist nach eigener Beschreibung ein Kommandozeilenprogramm zum Management von Dateien in Cloud-Speichern. Gelegentlich liest man auch die Bezeichnung swiss army knife of cloud storage. Bei der Unterstützung von mehr als 40 Providern bzw. Protokollen ist diese Bezeichnung allerdings auch naheliegend.

Aber nun zur Nutzung von Rclone für dieses Blog: Wie man unten auf dieser Webseite sehen kann, nutze ich zur Generierung der Webseiten HUGO. In der Dokumentation zu HUGO gibt es auch einen Abschnitt Hosting & Deployment. Und dort bin ich erstmals auf Rclone gestoßen. Auf der Unterseite Deployment with Rclone wird die (relativ einfache) Nutzung von Rclone für den besagten Zweck beschrieben.

Letztlich reichen die folgenden Zeilen, um die Webseiten neu zu erzeugen und inkrementell zu übertragen:

hugo --gc --minify
rclone --verbose sync /home/user/j5s7/public/ webspace:/

Ich gehe dabei von der Nutzung einer Shell wie z. B. der Bash-Shell unter Linux aus. Die kurze Schreibung der zweiten Zeile zur nicht-interaktiven Nutzung von Rclone benötigt allerdings noch eine Konfigurationsdatei, die bei Rclone üblicherweise unter dem Pfad ~/.config/rclone/rclone.conf zu finden ist.

Für die Synchronisation von einem lokalen Verzeichnis mit dem Webspace bei einem Provider sieht der entsprechende Abschnitt in rclone.conf z. B. so aus:

[webspace]
type = sftp
host = ssh.provider.example.com
user = Benutzername
port = 22
pass = <Passwort_für_SSH-Zugang>
use_insecure_cipher = false
md5sum_command = none
sha1sum_command = none

Die Einträge können je nach Provider auch anders aussehen. In der Dokumentation des Providers sollten sich entsprechende Hinweise zur Konfiguration finden. Die Datei rclone.conf erstellt man am besten interaktiv mit dem Befehl rclone config. Die Datei rclone.conf sollte nur für deren Eigentümer lesbar sein. Unter Linux erreicht man das mit chmod 600 ~/.config/rclone/rclone.conf.

Ein weiterer Schritt könnte z. B. die Nutzung eines Build-Management-Tools wie GNU Make sein. Damit lassen sich die Schritte Build und Deploy weiter vereinfachen und Abhängigkeiten von anderen Tools, z. B. zur Aufbereitung von Grafiken oder Bildern können berücksichtigt werden.