3

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

  1. Структура файла с одной точки вниз должна быть согласованной. Например, файлы могут храниться в каталоге x где x находится в /my_drive_a/to_copy/files/x/ - однако, когда я копирую его в /my_drive_b/ , я бы хотел, чтобы он был структурирован только из /files/ down , Таким образом, результат может выглядеть примерно как /my_drive_b/files/x/ .
  2. Передача файлов не всегда будет одинаковой, поэтому такая функция, как rsync может не иметь преимуществ перед такой функцией, как cp .
  3. Количество файлов будет в тысячах, хотя все они небольшие.
  4. Данные должны быть скопированы и сохранены в my_drive_a .

Моей первоначальной мыслью было бы просто сделать cp -R /my_drive_a/to_copy/files/x/ /my_drive_b/files/x/ . Опять же, имея ограниченный опыт работы с функциями копирования в Linux, я не уверен, является ли это оптимальным решением для копирования такого большого количества файлов.

1 ответ1

1

Просто иди с cp . coreutils хорошо оптимизированы и будут работать отлично. Кроме флага --archive , рассмотрите возможность использования --sparse=never , если вы прогнозируете, что редких файлов нет. Это будет немым вниз cp и сэкономить время.

Почему не rsync? Он попытается проанализировать файлы, отсортировать их (см. "ПОРЯДОК СОРТИРОВКИ ПЕРЕДАЧИ" в man rsync), и будет очень сложно распечатать полезную информацию о ходе работы, не создавая серьезных препятствий для всего процесса. Хотя некоторые из его параметров могут быть отключены, некоторые являются обязательными и приведут к замедлению времени выполнения.

В зависимости от размера ваших данных может быть быстрее скопировать весь диск (например, /dev/sda) с помощью таких программ, как dd или ddrescue , но трудно сказать, когда эта опция будет быстрее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .