1

Я пытаюсь добиться следующего:

Чтобы проверить, правильно ли я выполнил пересылку всех данных со своего старого NAS на новый, я выполняю:

rsync --rltD -hvinu /path/to/old/NAS/ /path/to/new/NAS

Теперь: -n получает пробную версию, -ia список изменений и -u следует пропустить все файлы, новые на новом NAS (что мне нужно, потому что на новом NAS уже есть обновления - люди уже работают с ним),

Приведенная выше команда дает мне список, который содержит это для нескольких каталогов:

.d..t

который в соотв. «man-page» означает, что никакой передачи не произойдет, но атрибуты (то есть время) будут обновлены в целевом объекте.

Проверяя затронутый каталог, я вижу, что каталог в цели НОВИНКА, чем каталог в источнике.

Так что я бы

  1. ожидайте, что даже не увидите его в выводе rsyncs - так как он должен был быть пропущен,
  2. не должно быть обновления этой отметки времени. -у следует позаботиться об этом.

Любой rsync про, кто может объяснить? Что я не получаю здесь?

Кстати: это реализация rsync на Qnap NAS (источник) и Synology NAS (цель).

ОБНОВЛЕНИЕ 1:

Похоже, что --update применяется только к файлам, а не к каталогам. rsync делает то, что должен: сравнивает размер и последнюю измененную временную метку и обновляет временную метку в месте назначения и ту в источнике (которая старше).

Я не нашел возможности применить --update к каталогам - однако есть --omit-dir-times, который будет игнорировать временные метки на каталогах. Применение этой опции также приведет к игнорированию новых каталогов в источнике. Таким образом, добавленный файл в источнике будет синхронизирован с местом назначения, но соответствующее изменение времени его родительского каталога не будет синхронизировано. Я не могу представить, что это ошибка / изъян в rsync - я что-то здесь упускаю?

0