GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Rsync -avzHP folgt Hardlinks, anstatt sie als Hardlinks zu kopieren

Der rsync -H des Befehls (oder --hard-links ) Option wird theoretisch das tun, was Sie zu erreichen versuchen, nämlich kurz gesagt:eine Kopie Ihres Dateisystems erstellen, die die fest verknüpfte Struktur des Originals beibehält. Wie ich in meiner Antwort auf eine andere ähnliche Frage erwähnt habe, ist diese Option zum Scheitern verurteilt, sobald Ihr Quelldateisystem über eine bestimmte Schwelle der Hardlink-Komplexität hinauswächst.

Die genaue Position dieses Schwellenwerts kann von Ihrem Arbeitsspeicher und der Gesamtzahl der festen Links (und wahrscheinlich einer Reihe anderer Dinge) abhängen, aber ich habe festgestellt, dass es keinen Sinn macht, ihn genau zu definieren. Was wirklich Wichtig ist, dass die Schwelle in realen Situationen allzu leicht zu überschreiten ist, und Sie werden nicht wissen, dass Sie es haben überschritten haben, bis der Tag kommt, an dem Sie versuchen, einen rsync -aH auszuführen oder ein cp -a das kämpft und schließlich scheitert.

Was ich empfehle, ist Folgendes:Kopieren Sie Ihr stark fest verknüpftes Dateisystem als eine Einheit, nicht als Dateien. Kopieren Sie also die gesamte Dateisystempartition als einen großen Blob. Dafür gibt es eine Reihe von Tools, aber das allgegenwärtigste ist dd .

Mit Standard-Firmware sollte Ihr QNAP NAS dd haben eingebaut, sowie fdisk . Mit fdisk , erstellen Sie eine Partition auf dem Ziellaufwerk, die mindestens so groß ist wie die Quellpartition. Verwenden Sie dann dd um eine exakte Kopie Ihrer Quellpartition auf der neu erstellten Zielpartition zu erstellen.

Während die dd kopieren ausgeführt wird, müssen Sie sicherstellen, dass sich im Quelldateisystem nichts ändert, damit Sie nicht mit einer beschädigten Kopie auf dem Ziel enden. Eine Möglichkeit dazu ist umount die Quelle vor Beginn des Kopiervorgangs; Eine andere Möglichkeit besteht darin, die Quelle im schreibgeschützten Modus zu mounten.


Linux
  1. Wie verwende ich den Rsync-Befehl unter Linux?

  2. Wie kopiere ich symbolische Links?

  3. Rsync kopiert aktuelles Verzeichnis mit Namen

  4. Kann ich Dateien mit rsync hartverlinken, anstatt sie zu kopieren?

  5. Unterschied kopieren Inhaltsordner zwischen /. und /* unter Linux

Kopieren von Dateien unter Linux

Rsync-Befehl:20 hilfreiche Beispiele in Linux

So schließen Sie bestimmte Verzeichnisse vom Kopieren in Linux aus

Kopieren Sie Dateiinhalte in die Zwischenablage, ohne sie anzuzeigen

Rsync zeigt Fortschrittsbalken beim Kopieren von Dateien unter Linux an

RSYNC löscht keine Quellverzeichnisse