Wie repliziere ich die Verzeichnisstruktur auf einen Remote-Linux-Server?

5304
Stuart Woodward

Ich möchte eine komplexe Verzeichnisstruktur von einem Linux-Server auf einen anderen Remote-Server replizieren, und zwar ab einem bestimmten Unterverzeichnis.

Ich möchte nicht den Inhalt der Dateien, ich möchte nur die Struktur, den Eigentümer und die Berechtigungen beibehalten, da der zu klonende Server ein großes Datenvolumen enthält, das nicht auf die neue Maschine kopiert werden darf.

Ich vermute, dass dies auf irgendeine Weise geschehen kann, indem die Ordnerstruktur ausgerichtet und auf dem Remote-Computer freigegeben wird. Oder indem Sie mit rsync kopieren, ohne die Daten zu senden. Oder möglicherweise mithilfe von find, um ein Shell-Skript zu erstellen.

Wenn jemand den One-Liner zur Hand hat, der das schafft, würde ich es schätzen.

2

2 Antworten auf die Frage

1
lorenzog

Eine Lösung könnte sein

find . -type d > dirs

Um die Verzeichnisse zu finden, verwenden Sie diese Datei mit der -TOption tar:

tar cpzT dirs -f dest_file.tar.gz

Dies sollte ein komprimiertes Archiv ( z) erstellen, das die Berechtigungen ( p) behält, indem nur die aufgelisteten Dateien ( T dirs) archiviert werden . Datei übertragen, mit dekomprimieren

tar xpzf dest_file.tar.gz

und du solltest fertig sein.

1
goldPseudo

Sie können kombinieren findund cpioeine Liste von Unterverzeichnissen aus dem aktuellen Arbeitsverzeichnis erstellen.

find . -type d -print | cpio -oO dirs.cpio 

Um diese Verzeichnishierarchie auf dem Remote-Computer neu zu dirs.cpioerstellen, kopieren Sie die Datei an den gewünschten Speicherort und führen Sie Folgendes aus:

cpio -iI dirs.cpio 
Beide Antworten waren großartig, aber ich gebe die beste Antwort, weil sie mich über cpio unterrichtet hat. Stuart Woodward vor 14 Jahren 0