Я пытаюсь добиться следующего:
Чтобы проверить, правильно ли я выполнил пересылку всех данных со своего старого NAS на новый, я выполняю:
rsync --rltD -hvinu /path/to/old/NAS/ /path/to/new/NAS
Теперь: -n получает пробную версию, -ia список изменений и -u следует пропустить все файлы, новые на новом NAS (что мне нужно, потому что на новом NAS уже есть обновления - люди уже работают с ним),
Приведенная выше команда дает мне список, который содержит это для нескольких каталогов:
.d..t
который в соотв. «man-page» означает, что никакой передачи не произойдет, но атрибуты (то есть время) будут обновлены в целевом объекте.
Проверяя затронутый каталог, я вижу, что каталог в цели НОВИНКА, чем каталог в источнике.
Так что я бы
- ожидайте, что даже не увидите его в выводе rsyncs - так как он должен был быть пропущен,
- не должно быть обновления этой отметки времени. -у следует позаботиться об этом.
Любой rsync про, кто может объяснить? Что я не получаю здесь?
Кстати: это реализация rsync на Qnap NAS (источник) и Synology NAS (цель).
ОБНОВЛЕНИЕ 1:
Похоже, что --update применяется только к файлам, а не к каталогам. rsync делает то, что должен: сравнивает размер и последнюю измененную временную метку и обновляет временную метку в месте назначения и ту в источнике (которая старше).
Я не нашел возможности применить --update к каталогам - однако есть --omit-dir-times, который будет игнорировать временные метки на каталогах. Применение этой опции также приведет к игнорированию новых каталогов в источнике. Таким образом, добавленный файл в источнике будет синхронизирован с местом назначения, но соответствующее изменение времени его родительского каталога не будет синхронизировано. Я не могу представить, что это ошибка / изъян в rsync - я что-то здесь упускаю?