Verschieben großer Verzeichnisse mit rsync

Verschieben großer Verzeichnisse mit rsync

Ich plane, das Linux-Verzeichnis o/sa, das auf SAN (offboard) gemountet ist, zur Sicherung auf einen externen Speicher zu verschieben. Die Verzeichnisgröße beträgt 14TB.

Ich habe zwar Erfahrung mit dem Ein- und Auslagern von Dateien mittels rsync, habe dies jedoch noch nie mit so großen Verzeichnissen/Dateien gemacht wie jetzt.

Die Verzeichnisse sind in einer Hierarchie nach Jahren/Monaten/Tagen/Stunden angelegt und unterstützen Rohprotokolle zur Analyse.

Problem

Aufgrund der oben genannten Punkte kann ich aufgrund von Ressourcenbeschränkungen nicht die gesamten 14 TB auf einen externen/Backup-Speicherplatz verschieben. Der Backup-Speicherplatz, den ich derzeit habe, beträgt maximal 8 TB. Gibt es also einen Befehl oder Schalter/Parameter, mit dem ich rsync anweisen kann, nur Dateien der angegebenen Größe, also nur TB, zu kopieren?

NOTIZ Die Art der Datei ist mir völlig egal, ich möchte nur ab einer bestimmten Größe keine Daten mehr verschieben.

Antwort1

Sie können rsync nicht dazu bringen, anzuhalten, wenn es eine bestimmte Anzahl von Bytes kopiert hat, indem Sie ein Limit angeben. Sie können es normal ausführen

rsync -a /src/ /dest 

und wenn /dest voll ist, wird es einfach mit einem Fehler angehalten

 rsync: write failed on "...": No space left on device (28)

Mit einem Skript könnte man etwas anfangen

find /src -printf "%p %s\n" >filelist_size

Verwenden Sie dann etwas wie awk, um den filelist_sizeDateinamen zu lesen und auszudrucken, filelistwenn die Summe der Dateigrößen unter einem bestimmten Schwellenwert liegt.

Sie können das files-from=filelistArgument dann für rsync verwenden.

Es ist möglicherweise einfacher, dies in Python zu schreiben.

verwandte Informationen