Führt dieser rsync-Befehl eine Teilsicherung durch, wenn er mehrmals ausgeführt wird?


3

Ich sichere Dateien auf einer Remote-Webdav-Freigabe. Ich verwende Rsync, damit es zumindest inkrementell ist. Es geht jedoch überhaupt nicht sehr schnell und ich frage mich, ob ich es richtig konfiguriert habe.

Führt der folgende Befehl eine Teilsicherung durch, wenn er mehrmals ausgeführt wird?

# Backup
sudo rsync -av --delete --progress \
--exclude '*@SynoResource' --exclude '@eaDir' \
--exclude '.TemporaryItems' \
--exclude '*.vsmeta' --exclude '.DS_Store' \
/mnt/configs/ /mnt/remote/configs

Wenn ja, wie kann ich es sonst beschleunigen?

Antworten:


0

Ja, ich glaube, Ihr Befehl wird das erreichen, was Sie anstreben.

Da Sie sowohl den ausführlichen Modus als auch die Fortschrittsoption verwenden, können Sie einen Hinweis darauf geben, wo die Verzögerung auftritt? Wenn die Verzögerung vor dem Beginn der Dateiübertragung liegt, werden wahrscheinlich alle Dateien zum Vergleich indiziert, insbesondere wenn viele Dateien vorhanden sind oder die Dateien groß sind.

Wenn der Mangel an Geschwindigkeit bei tatsächlichen Übertragungen auftritt, kann dies eine Menge sein. Bandbreite ist die offensichtliche, große Änderungen an großen Dateien zu synchronisieren ist eine andere. Sobald der Befehl ausgeführt wurde, sollten Sie eine Vorstellung davon haben, wie viele Daten im Vergleich zur Gesamtgröße der Zieldateien tatsächlich übertragen wurden.

Beachten Sie, dass sich einige Dateitypen (insbesondere komprimierte Dateien wie JPEGs und MP3s) nicht sehr gut für die Synchronisierung eignen, da eine kleine Änderung an der Datei das Layout der gesamten Datei ändert und fast die gesamte Datei erneut synchronisiert werden muss.

Ein Tipp zur Verbesserung der Synchronisierungsgeschwindigkeit in Abhängigkeit von der Art Ihrer Daten und der Art der Änderungen ist die Verwendung der Option Fuzzy (-y) in Verbindung mit --delete-after. Wenn Sie dann eine Datei umbenennen oder kopieren, anstatt dass diese Datei vollständig (als neue Datei) synchronisiert werden muss, verwendet rsync die Datei, die bereits auf dem Ziel vorhanden ist, um die neue Datei zu erstellen.

Rsync funktioniert mit einigen Dateisystemen nicht einwandfrei. Zum Beispiel sind mtimes auf FAT32 nur auf +/- 2 Sekunden genau, sodass rsync zum Synchronisieren einer Datei ausgelöst werden kann, die nicht aktueller als die Quelle ist, obwohl es den Anschein hat, dass sie aktuell ist. Gelegentlich können Sie die Argumente --size und --modify-window verwenden, damit rsync Diskrepanzen zwischen den Dateiänderungszeiten ignoriert.


Die Verzögerung tritt vorher nicht auf, es ist eher so, dass die Behandlung jeder Datei nicht so schnell ist. Mit diesem Befehl sollte zunächst nur das Datum der letzten Änderung verglichen werden, oder? Ich dachte nur, dass das extrem schnell gehen würde. Es dauert jedoch einige Sekunden pro Datei (auch für Dateien mit weniger als 1 MB). Welches scheint mir lang.

Ah, ich habe gerade festgestellt, dass es WebDAV verwendet, daher würde ich davon ausgehen, dass jede Datei jedes Mal zu 100% synchronisiert wird. Auch dies sollte in den endgültigen Statistiken offensichtlich sein. Möglicherweise möchten Sie nach --size-only und --modify-window suchen, damit nur grundlegende Dateiattribute zum Vergleich verglichen werden.
Darren

Ok, --size-only ist viel schneller. Scheint so, als würde das machen, was ich will. Vielen Dank!

1
OK. Ich habe meiner Antwort etwas mehr hinzugefügt, um sie zu behandeln.
Darren

1

In diesem Befehl sind sowohl Quelle als auch Ziel "lokal" zu rsync. Wirklich schnell wird es nur, wenn über auf das Ziel zugegriffen wird rsync oder ssh Protokoll, z.B.

rsync -av /my/local/dir root@somehost:/my/remote/dir

In diesem Fall rsync wird laichen rsync prozess auf somehost und greift lokal auf die Dateien im Zielverzeichnis zu (schnell, wie nicht über das Netzwerk).

In Ihrer Konfiguration rsync liest die Dateien lokal aus configs und liest die Dateien ein /mnt/remote/configs über das Netzwerk. Um den Inhalt zu vergleichen, müssen alle Dateien gelesen und der Inhalt blockweise gehasht werden, damit es keinen wirklichen Geschwindigkeitsvorteil gibt.

Hilft das?


Der von Ihnen vorgeschlagene Befehl sollte also viel schneller sein? Der Remote-Standort unterstützt nur webdav. Funktioniert der von Ihnen bereitgestellte Befehl auch damit?

Nein, für schnelles Rsync über das Netzwerk muss das Ziel Rsync unterstützen.
smakks
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.