Команда rsync выполняет инкрементное копирование или перезапись файла?

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

3 Solutions collect form web for “Команда rsync выполняет инкрементное копирование или перезапись файла?”

Uh, это действительно зависит от флагов, переданных rsync , но по умолчанию rsync зеркалирует весь файл (ы) от источника до места назначения, хотя вы можете настроить то, что происходит со степенью с --update или --existing или --ignore-existing или также различные исключения исключений ( --delete , --delete , --delete-excluded ) среди других опций ( --prune-empty-dirs и т. д.).

Существует (слава богу!) Никаких подсказок (кроме паролей), и никакой поддержки «схожего имени», которое я знаю (какой вариант использования потребует?).

rsync обычно создает новую версию файла рядом с пунктом назначения, а затем переключает его на имя назначения в последний момент, когда он будет завершен. Новая версия может быть создана либо с использованием дельт, то есть с изменениями между источником и получателем или в виде полной копии. (См. Мой ответ для Smarter filetransfers, чем rsync, для некоторой ясности в отношении этой разницы.)

Флаг --partial сообщает rsync хранить и использовать любой частично переданный файл в качестве цели, если соединение по какой-либо причине прерывается. (В противном случае частично переданный файл будет отброшен.)

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

На странице руководства:

 It is famous for its delta-transfer algorithm, which reduces the amount of data sent over the network by sending only the differences between the source files and the existing files in the destination. 

Вы можете увидеть это в действии с тестом:

 $ mkdir foo bar
 $ echo "a"> foo / a
 $ rsync -av --stats foo / bar /
 отправка инкрементного списка файлов
 ./


 Количество файлов: 2 (рег: 1, реж .: 1)
 Количество созданных файлов: 1 (reg: 1)
 Количество удаленных файлов: 0
 Количество переданных обычных файлов: 1
 -> Общий размер файла: 2 байта
 -> Общий переданный размер файла: 2 байта
 ...бла бла бла...

Это устанавливает, что начальный rsync отправляет 2 байта данных из источника в целевые dirs.

Теперь добавьте новый файл и rsync:

 $ echo "b"> foo / b
 отправка инкрементного списка файлов
 ./
 б

 Количество файлов: 3 (рег: 2, реж .: 1)
 Количество созданных файлов: 1 (reg: 1)
 Количество удаленных файлов: 0
 Количество переданных обычных файлов: 1
 -> Общий размер файла: 4 байта
 -> Общий переданный размер файла: 2 байта
 ...бла бла бла...

Здесь rsync правильно видит, что все файлы составляют 4 байта, но нужно отправить только 2. Другими словами, он не перезаписывает существующий файл.

  • Как rsync в другой каталог?
  • `mv` потерпел неудачу из-за недостаточного дискового пространства, что теперь?
  • Способы консолидации музыкальной папки
  • rsync жалуется на символические ссылки
  • Вопрос синхронизации Rsync NFS
  • Как файлы исправления rsync, когда есть разница в середине?
  • простое решение rsync с файловым менеджером (thunar или nautilus или ...)
  • lsyncd и дополнительные параметры для rsync
  • Оцените время или работу, оставшуюся до конца для rsync?
  • как заставить rsync связывать идентичные файлы с параметром -link-dest, если старый файл уже существует?
  • mv с функциональностью rsync
  • Interesting Posts

    Как изменить конечные числа на увеличивающийся номер

    Почему брандмауэр отключен по умолчанию с Linux Mint?

    Отправлять обновление ping в службы ping в Terminal?

    Влияет ли alsa на версию ядра?

    Файловый менеджер с подпружиненными папками?

    / readonly при загрузке, но не понимаю, почему. как исследовать и исправлять?

    Ошибка установки Spacewalk selinux

    Как запустить терминал с помощью сочетаний клавиш в Gnome 2?

    Запуск программы как root без использования sudo с обычной учетной записью пользователя

    Место замены не используется

    Существуют ли еще LSM (модули безопасности Linux) в дополнение к SELinux и AppArmor?

    bcache не работает, как ожидалось, с помощью ramdisk в качестве устройства кэширования

    Почему правило iptable не может быть указано?

    действительно ли основанный на ОС ноутбук отлично работает с дистрибутивом linux

    Извлечение нескольких экземпляров текста между двумя строками

    Linux и Unix - лучшая ОС в мире.