Как мне реплицировать структуру каталогов на удаленный сервер Linux?

5249
Stuart Woodward

Я хочу реплицировать сложную структуру каталогов с одного сервера Linux на другой удаленный сервер, начиная с определенного подкаталога.

Я не хочу, чтобы содержимое файлов, я просто хочу сохранить структуру, владельца и разрешения, так как клонируемый сервер содержит большой объем данных, которые не должны быть скопированы на новую машину.

Я предполагаю, что это можно сделать как-то, изменив структуру папок и отключив ее на удаленной машине. Или с помощью rsync для копирования без отправки данных. Или, возможно, с помощью find для создания сценария оболочки.

Если у кого-нибудь есть подкладка, которая выполняет это, я был бы признателен.

2

2 ответа на вопрос

1
lorenzog

одно решение может быть

find . -type d > dirs

чтобы найти каталоги, затем используйте этот файл с -Tопцией tar:

tar cpzT dirs -f dest_file.tar.gz

который должен создать сжатый архив ( z) с сохранением разрешений ( p) путем архивирования только перечисленных файлов ( T dirs). Передача файла, распаковать с

tar xpzf dest_file.tar.gz

и ты должен быть готов.

1
goldPseudo

Вы можете комбинировать findи cpioсоставлять список подкаталогов из текущего рабочего каталога таким образом:

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

Чтобы восстановить эту иерархию каталогов на удаленном компьютере, скопируйте dirs.cpioфайл в нужное место и запустите:

cpio -iI dirs.cpio 
Оба ответа были великолепны, но я даю лучший ответ на этот вопрос, чтобы научить меня о cpio. Stuart Woodward 14 лет назад 0

Похожие вопросы