Почему rsync обновляет каталоги NTFS, если источник не изменился?

Почему rsync обновляет каталоги NTFS, если источник не изменился?

Я посещаю занятия с большим количеством фонетического и грамматического анализа. Мне дали учетную запись в сети Windows 10. Поскольку мне гораздо удобнее работать с Mac и Linux (и поскольку часы работы Windows ограничены), я работаю на своем ноутбуке Mac.

Я автоматически смонтировал свои каталоги NTFS, но с их локальной сетью что-то не так, поэтому довольно часто некоторые приложения имеют доступ только для чтения или вообще не имеют доступа.

Следовательно, я работаю в локальном экземпляре и частоrsyncизменения. Но rsync* всегда обновляет каждый каталог NTFS — только каталог, никогда не обновляет файлы (кроме тех, которые я действительно изменил). В большинство из этих каталогов я никогда не заходил, ноrsyncсообщает об обновлениях по всему дереву подкаталогов. Это не серьезно — завершается за секунды — но все равно довольно странно.

Что делают Windows и NTFS с каталогами, к которым никогда не обращаются, из-за чего rsync считает, что они изменились?

решение1

Разрешить сравнение мод-времен с уменьшенной точностью

При таком типе настройки, когда вы монтируете раздел NTFS, вам нужно убедиться, что вы используете соответствующие параметры, например, --modify-window=5увеличить значение по умолчанию, чтобы можно было сравнивать время модов с меньшей точностью.

--modify-window 

    When comparing two timestamps, rsync treats the timestamps as
    being equal if they differ by no more than the modify-window value. This 
    is normally 0 (for an exact match), but you may find it useful to set 
    this to a larger value in some situations. In particular, when
    transferring to or from an MS Windows FAT filesystem (which represents               
    times with a 2-second resolution), --modify-window=1 is useful (allowing 
    times to differ by up to 1 second).

Дополнительные ресурсы

решение2

Сначала ответим на проблему программ только для чтения. Поскольку сетевой ресурс контролируется Windows, Windows разрешает делать что-либо только определенным пользователям. Это может быть общедоступный ресурс, IE, любой может просматривать его, загружать файлы и т. д., но не изменять его, если специально не добавлена ​​возможность сделать это. Поскольку вы используете Mac, который похож на Linux. Не каждое приложение Linux, которое вы используете, использует то же имя пользователя, под которым вы в данный момент вошли на свой Mac или Linux. Следовательно, поскольку программа не использует ваше имя пользователя, вошедшего в систему, ей не предоставлены права редактировать файлы в соответствии с Windows, поскольку имя пользователя не совпадает.

Во-вторых, Rsync рекурсивен. Это значит, что он пройдет по всем каталогам. Если вы не ограничите его определенным каталогом, но даже если вы ограничите его одним каталогом, он продолжит проходить по всем каталогам, которые находятся в каталоге, с которого он начал. Именно для этого он и предназначен. Поэтому он называется рекурсивной синхронизацией. Теперь причина обновления каталогов, а не файлов, может заключаться в том, как rysnc получает временную метку из каталогов. Это может быть связано с тем, что его каталоги Windows 10 не имеют временной метки изменения или доступа, а только временную метку создания каталога, тогда как файлы имеют все эти временные метки, которые rsync использует для определения необходимости обновления каталогов или файлов.

Связанный контент