Могу ли я использовать Ditto в OS X для синхронизации двух папок на одном компьютере?

7828
Niko Nyman

Можно ли использовать утилиту командной строки dittoдля синхронизации двух папок на одном компьютере с OS X? Другими словами, может ли копировать только измененные файлы из источника и удалять удаленные файлы из цели?

2

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

6
fideli

Нет, то же самое не копирует только измененные файлы. Для этого вам лучше использовать rsync . Бомбич, создатели Carbon Copy Cloner, опубликовали на своем сайте отличную статью о различных инструментах.

О том же:

Ditto - это утилита командной строки, поставляемая с Mac OS X. Ditto сохраняет разрешения при запуске от имени пользователя root и сохраняет вилки ресурсов по умолчанию. То же самое можно использовать для клонирования вашей системы с помощью следующего шага:

sudo ditto -X / /Volumes/Backup 

О rsync:

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

sudo rsync -xrlptgoEv --progress --delete / /Volumes/Backup 

Тем не менее, я настоятельно рекомендую прочитать их подробный документ по rsync и обновить его до rsync 3.0.7 (я делаю это с помощью MacPorts).

РЕДАКТИРОВАТЬ: OS X rsync 3.0.7 и метаданные

Чтобы сохранить метаданные после установки последней версии rsync, используйте следующую команду:

rsync -aNHAXx --protect-args --fileflags --force-change 

Это из статьи bombich.com . Все эти параметры могут быть не всегда необходимы, но в качестве примера можно использовать их для резервного копирования всего жесткого диска. В этой статье также есть раздел о точности резервного копирования, в котором они сообщают о результатах из набора тестов bouncer резервного копирования для rsync с указанными выше параметрами.

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

Я использую rsync на своем сервере Linux, но с осторожностью относился к нему в OS X из-за «мелочей» HFS, о которых я не особо хотел узнать. :) Есть ли способ убедиться, что у меня есть RFSync с поддержкой HFS +? Niko Nyman 14 лет назад 0
Хороший вопрос. Я отредактировал свой пост. Я согласен и могу заверить вас, что при использовании rsync 3.0.7 и опций, представленных в редактировании, сохраняются все метаданные. Это было протестировано с использованием пакета backup-bouncer, а результаты находятся в той же статье rsync на bombich.com: http://www.bombich.com/mactips/rsync.html fideli 14 лет назад 1
Здесь есть несколько предупреждений о совместимости: rsync v3 (согласно примечаниям Бомбича) лучше справляется с сохранением атрибутов, чем встроенный в Apple rsync (v2.6.9 + моды Apple, что на самом деле неплохо), но имеет несовместимые параметры команды (`- E` в версии Apple соответствует `-HNAX --fileflags` в v3); чтобы избежать путаницы, я склонен устанавливать v3 как `rsync3`. Кроме того, две версии по-разному передают расширенные метаданные по сети, поэтому удаленная синхронизация между версиями может быть затруднена. Gordon Davisson 14 лет назад 0
Спасибо! Я думаю, что установка v3 в качестве rsync3 является хорошей идеей, поскольку я полагаюсь на rsync для удаленного резервного копирования моего сервера CentOS и не хочу портить это. Niko Nyman 14 лет назад 0
На самом деле, если CentOS rsync версии 3 и работает в файловой системе с расширенными атрибутами (например, ext2-4), он может работать с версией 3 лучше, чем версия Apple (хотя я думаю, что худшее, что может случиться, это то, что xattrs не будет переведен). Вы можете управлять тем, какая удаленная версия используется, например, с помощью `--rsync-path = / usr / local / bin / rsync3` Gordon Davisson 14 лет назад 1
1
Jeremy L

Я не думаю, что то же самое делает то, во что ты веришь.

Если вы хотите синхронизировать две папки, рассмотрите rsync.

1
yanokwa

rsync синхронизируется в одну сторону. если вы хотите двустороннюю синхронизацию, используйте унисон.

Односторонней синхронизации мне достаточно. Niko Nyman 14 лет назад 0