Dateien mit rclone synchronisieren – gezielt Ordner ein- oder ausschließen

Dateien mit rclone synchronisieren – gezielt Ordner ein- oder ausschließen

Rclone, ein tolles Tool für die Kommandozeile, um Dateien von A nach B zu bewegen. So nutze ich es. >

Es kommt immer wieder vor, dass ich Dateien von Server A nach Server B kopieren oder verschieben muss – sei es, weil nachts ein Backup laufen soll oder weil ich gerade einen neuen Server einrichte. Auch auf meinen lokalen Rechner verschiebe ich regelmäßig Daten, zum Beispiel für tägliche Backups. Dafür nutze ich sehr gerne rclone – ein kleines, aber mächtiges Werkzeug, mit dem ich genau steuern kann, welche Dateien synchronisiert werden und welche nicht

Wofür ich rclone einsetze

rclone ist ein Kommandozeilen-Tool, das sehr gerne zum Synchronisieren von Verzeichnissen entweder lokal oder auf einen externen Speicher genutzt wird. Es unterstützt nicht nur lokale Ordner, sondern auch viele Cloud-Dienste wie Google Drive, S3, WebDAV, FTP und viele andere. Damit kann ich Daten synchronisieren, kopieren, verschieben oder auch direkt in mein Dateisystem einhängen. Besonders gefällt mir, dass ich sehr flexibel filtern kann, welche Dateien rclone mitnimmt – perfekt, wenn ich nur einen bestimmten Ordner sichern möchte.

Ich nutze es beispielsweise, um meine Backups auf einen externen SFTP Server zu kopieren.

Dateien und Ordner gezielt ein- oder ausschließen

Wenn ich nicht den ganzen Inhalt eines Ordners sichern möchte, nutze ich die Filterfunktionen.

Mit --exclude kann ich Dateien einfach ausschließ en. So werden z. B. alle .bak-Dateien übersprungen:

rclone copy /quelle remote:ziel --exclude "*.bak"

Wenn ich viele Ausschlussregeln habe, packe ich sie in eine Datei und rufe sie mit --exclude-from auf:

rclone copy /quelle remote:ziel --exclude-from excludes.txt

In meiner Datei excludes.txt stehen z. B. solche Einträge:

*.bak
Thumbs.db

Möchte ich nur bestimmte Dateitypen mitnehmen, verwende ich --include. Damit kopiere ich zum Beispiel nur Fotos:

rclone copy /quelle remote:ziel --include "*.jpg" --include "*.png"

Das ist praktisch, weil alles andere automatisch ausgeschlossen wird.

Für komplexere Szenarien nutze ich --filter-from. Ich definiere Regeln in einer Datei und kann so genau festlegen, was synchronisiert wird:

Dateien ausschliessen mit der filter.txt

+ *.jpg
+ /Spezialordner/**
- *.tmp
- *

Diese Regeln sorgen dafür, dass nur JPG-Dateien und der Ordner „Spezialordner“ synchronisiert werden. Alles andere wird ignoriert.

Aufruf:

rclone sync /quelle remote:ziel --filter-from filter.txt

Nur bestimmte Ordner sichern

Wenn ich gezielt nur einzelne Ordner synchronisieren möchte, geht das ebenfalls mit --filter-from. Eine einfache Regeldatei sieht so aus:

ordner.txt

+ /FolderA/**
+ /FolderB/**
- *

Mit diesem Befehl werden ausschließlich die Ordner FolderA und FolderB kopiert:

rclone copy /quelle remote:ziel --filter-from folders.txt

So stelle ich sicher, dass keine anderen Daten versehentlich übertragen werden.

Zeitstempel-Probleme bei Bildern

Eine Sache, die mich anfangs irritiert hat: rclone arbeitet mit Zeitstempeln, und manche Cloud-Dienste speichern diese nur auf Sekunden genau. Lokale Dateien haben aber oft Millisekunden-Genauigkeit. Das kann dazu führen, dass rclone denkt, eine Datei hätte sich ge&aumländert, und sie erneut hochl&aumlädt.

Ich habe dafür ein paar Lösungen gefunden:

  • Mit --modify-window 1s gebe ich rclone einen Spielraum von einer Sekunde:

    rclone sync /quelle remote:ziel --modify-window 1s
    
  • Noch besser: Ich lasse rclone die Inhalte per Checksummen vergleichen, wenn mein Ziel-Backend das unterützt:

    rclone sync /quelle remote:ziel --checksum
    
  • Bei Fotos ist außerdem wichtig: Dienste wie Google Photos nutzen den EXIF-Zeitstempel in den Bildern – nicht den Dateizeitstempel.

  • Falls ich rclone als „mount“ nutze, hilft mir das VFS-Caching, aber ich muss bedenken, dass Änderungen im Cache manchmal nicht sofort sichtbar sind.

Meine liebsten rclone-Befehle

# Nur .jpg und .png synchronisieren
rclone copy /local remote:backup --include "*.jpg" --include "*.png"

# Ganze Ordner sichern, aber bestimmte Dateien ausschließen
rclone sync /local remote:backup --filter-from filter.txt

# Dokumente von Nextcloud Ordner in den Paperless Consume Ordner kopieren
rclone sync /home/nextcloud/data/lars/files/Dokumente/ --include "*.pdf" --include "*.docx" "/opt/paperless-ngx/consume

MeinResümee

Ich finde, rclone ist ein großartiges Werkzeug, um Backups zu automatisieren und Daten flexibel zu synchronisieren – egal ob auf dem Server oder lokal. Mit den vielen Filteroptionen kann ich genau steuern, welche Inhalte ich mitnehme. Und auch die kleinen Stolpersteine wie Zeitstempel-Probleme lassen sich mit den richtigen Flags gut in den Griff bekommen.

Weiterführende Links

Share the Post:

Related Posts