Копирование глубоко вложенной структуры каталогов

Копирование глубоко вложенной структуры каталогов

Мне нужно скопировать структуру каталогов на новый хост в рамках миграции приложения. Структура каталогов выглядит следующим образом:

{10 - ff} / {00 - ff} / {00 - ff} (не включительно) / uniquefilename

Итак, файлов миллионы. Третий уровень дерева не полностью заполнен, и не в каждом каталоге третьего уровня есть файл.

du занимает МНОГО времени даже для папки второго уровня. Использование tar | nc заняло бы 10 дней. Я могу получить 1-дневный сбой, но не 10.

решение1

Используйте rsyncдля этого.

  1. Прежде чем переходить на новый сервер, сделайте перенос rsyncвсего каталога с одного хоста на другой. Судя по всему, это займет много времени.
  2. После завершения запустите его rsyncснова, чтобы обнаружить все файлы, измененные во время первой rsync.
  3. Продолжайте выполнять периодические rsyncзапуски, пока не захотите выполнить переключение. Это нужно только для того, чтобы сохранить объем данных, которые необходимо передать, на низком уровне.
  4. Сделайте перерыв и остановите все записи на старый сервер.
  5. Выполните еще один последнийrsync
  6. Запустите службы на новом сервере.

решение2

Если эта структура каталогов представляет собой большую часть данных на устройстве/разделе, игнорируйте структуру каталогов, если именно она является причиной проблемы.

Вместо этого отмонтируйте устройство (или перемонтируйте его в режиме «только для чтения») и используйте dd(1)netcat для копирования блоков файловой системы в раздел того же размера на новом хосте.

Если за пределами нужной вам иерархии имеются посторонние данные, удалите их после миграции.

Вы также можете рассмотреть вариант извлечения диска и подключения его к новому хосту, если сеть между хостами может оказаться узким местом.

решение3

Для одноразового копирования, и если вы можете смонтировать исходную и целевую копии на одной системе, вы можете сделать следующее:

find [source top dir] | cpio -dump [target mountpoint]

Он скопирует и сохранит атрибуты файла. В инструменте cpio также должен быть параметр сжатия.

Связанный контент