Linux Labs

Хранилище / Ступень 10 из 11

Rsync — зеркало, сравнение и границы удаления

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 2 из 8 · теория · 5 мин

Как rsync выбирает файлы

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

rsync приводит назначение к источнику: первым в команде идёт источник, вторым — назначение. Ключ -a копирует каталоги целиком и переносит права и время изменения, а если хватает полномочий — и владельца.

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

У двух settings.conf строки mode=stable и mode=broken одной длины, а время изменения им выставили одинаковое. Для быстрой проверки это один и тот же файл. Так бывает, когда время файлу задают вручную через touch -d или переносят из архива: tar возвращает файлам время, записанное в архиве.

Ключ -c сравнивает контрольные суммы содержимого: rsync читает каждый файл с обеих сторон целиком. Различие он найдёт, но на большом дереве это долго. Поэтому -c берут, когда есть повод не доверять размеру и времени.

Проверь себя 1 вопрос

В ls -l у app.conf в источнике и в копии одинаковые размер и время, а cat печатает разные строки. Что сделает rsync -a src/ copy/?

  • Без -c rsync сравнивает размер и время, а они совпадают: файл он пропустит. Заменит его rsync -ac src/ copy/.

  • Без -c разное содержимое rsync не замечает: команда завершится молча, как в начале урока.

  • rsync не задаёт вопросов: что копировать, он решает сам — по размеру и времени изменения.

Без -c rsync сравнивает только размер и время изменения, а они совпадают. Сравнить содержимое и заменить файл поможет rsync -ac src/ copy/.

Главное в шаге

  • Без -c rsync сравнивает только размер и время изменения: если они совпали, файл не копируется.
  • -c сравнивает содержимое по контрольной сумме и читает все файлы, поэтому на больших деревьях работает дольше.
Ubuntu 24.04
Загрузка…