Лучшие варианты rsync для передачи данных между двумя Mac

Я собираюсь перенести свои данные со своего старого iMac на новый MacBook Pro. Я хотел бы начать с новой установки на B и скопировать только подмножество моих данных, переустанавливая приложения с нуля, поэтому я не рассматриваю возможность использования помощи при миграции.

Я думаю использовать rsync для выполнения этой работы, но я не понимаю, какие параметры мне следует использовать.

Читая справочные страницы, я пришел к следующему:

rsync -vazHE --progress -e ssh andrea@imac:/remote/dir /local/dir/ 2> errors.log
  • v: многословный
  • a: архивировать, чтобы хранить время, символические ссылки, разрешения, группы, владельцев и рекурсивно перемещаться по каталогам
  • z: для сжатия данных
  • H: сохранить любую жесткую ссылку
  • E: сохранить расширенные атрибуты
  • прогресс: чтобы следить за ходом работы

Я не рассматриваю некоторые другие полезные варианты?

Я переместил свои данные, и команда сработала как по маслу. Я проверил некоторые образцы данных с помощью MD5, и все было в порядке, за исключением папки iPhoto, где у меня был правильный размер, но гораздо больше файлов, чем ожидалось. Я подозреваю, что есть некоторые ссылки, которые неправильно обрабатываются.
Если вам случится сделать это снова, рассмотрите Truck.app. Я написал это, чтобы сделать rsync таким же простым, как «перетаскивание». У него хорошие параметры по умолчанию, но если вам нужно, вы можете спуститься прямо туда, в моторный отсек, и все настроить :) проверьте, если хотите bonhardcomputing.com/truck

Ответы (2)

Лично я был бы склонен отказаться от zпереключателя. Сжатие действительно полезно только при очень медленных соединениях (мобильные данные, коммутируемое соединение), поскольку ЦП, вероятно, станет узким местом. Я определенно видел падение пропускной способности при включенном сжатии.

Предполагая, что ваша сеть является надежной, вам следует использовать более эффективный, но, возможно, менее безопасный шифр SSH, так как это, вероятно, немного ускорит операцию (это, безусловно, помогает с VNC через SSH или пересылкой X11 через SSH).

  • Запустите ssh -Q cipherобе системы и выберите общий для них шифр.
  • Используйте его сrsync -vhaHE --progress -e "ssh -c aes256-cbc" andrea@imac:/remote/dir /local/dir/ 2> errors.log

PS: я также использую -hпереключатель, чтобы получить более удобочитаемые числа в МБ/с, а не в б/с .

Я знаю, что это старая публикация, но она очень помогла. Стоит отметить, что команда должна запускаться из пункта назначения, а не из источника ... если только вы не переключаете команды (чего я сначала по глупости не понял). Должен любить резервные копии! ;)
@IncredibleHat Я прочитал ваш комментарий после того, как сам в него вник 😅

Оказывается, blowfish и arcfour были отключены по умолчанию из соображений безопасности (начиная с OpenSSH 6.7 ), поэтому приведенное выше предложение больше не работает.

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

Чтобы увидеть список, запустите: ssh -Q cipherи затем используйте тот, который вы выбрали:

rsync -azvP --progress -e "ssh -c <insert-cipher-here>" user@hostname:/source /destination
Если оба процессора поддерживают аппаратное ускорение AES-NI , шифры на основе AES могут работать быстрее, чем вы ожидаете. Вы можете проверить, есть ли это на вашем Mac, запустив sysctl -a machdep.cpu | grep AES— если он распечатает список функций, у вас есть ускорение.