Ich habe ein rsync-Sicherungsskript auf einer Centos 6-Box ausgeführt, die ~ 410 GB Daten von einem lokalen (LAN-) Server über eine Gigabit-Verbindung synchronisiert hat. Dieses Skript wird stündlich ausgeführt. Wenn keine neuen Dateien kopiert werden müssen, dauert der Vorgang in der Regel etwa 20 Minuten.
Ich habe ein Bereinigungsskript implementiert, das auf der Centos-Box ausgeführt wird und alle Dateien aus der lokalen Sicherungskopie löscht, die älter als 1 Jahr sind (nach einigen Überprüfungen), und diese Dateien einer Ausschlussliste hinzufügt, damit rsync sie analysiert. Alles funktioniert, aber es dauert ungefähr 10 Stunden (ohne neue Dateien). Nach der ersten Bereinigung sind die Quelldaten jetzt ungefähr 80 GB groß und die Ausschlussliste ist ungefähr 90 MB groß.
Hier ist meine Rsync-Zeile aus dem Skript:
rsync -pad $wholefiles --exclude-from=${exclfile}.combined /mnt/${smbdir}/${drive}/${foldername} /backup/rob/${smbdir}/${drive} >> /var/log/rob/robso.log 2>&1
Hat rsync (oder bash) Größenbeschränkungen für Dateilisten? Kannst du irgendetwas in meiner Syntax sehen, das so viel Verarbeitungszeit verursachen würde? Danke im Voraus.
BEARBEITEN: Die Variable $ wholefiles in der Zeile rsync übergibt in diesem Fall die Option --whole-file.
Antworten:
Ich würde das umdrehen. Anstatt
rsync
eine große Anzahl von Dateien auszuschließen, würde ich diese Dateien nicht zurrsync
Prüfung geben.Ich bin mir nicht ganz sicher, ob es durch die Angabe von
rsync -d
(--dirs
) keine Rekursion geben soll. Wenn ich das falsch verstanden habe, dann entferne die-maxdepth 1
.Die
--whole-file
Option ist irrelevant, da sie hier immer verwendet wird, darsync
sie zwischen zwei Teilen desselben "lokalen" Dateisystems kopiert. (Ja, dies bedeutet, dass der Delta-Algorithmus deaktiviert ist.)Möglicherweise möchten Sie die Zeitspanne für den betreffenden Dateisatz verkürzen
find
. Hier habe ich festgelegt, dass nur Dateien berücksichtigt werden, die in den letzten 366 Tagen geändert wurden, da Sie das Ausschließen von Dateien erwähnt haben, die älter als ein Jahr sind.quelle