2

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

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

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

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

3 ответа3

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).

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

0

Явно исключить -a неявные параметры с помощью --no-OPTION

Комментарий:

Добавление окна изменения в «rsync -av --bwlimit = 200 --delete --modify-window = 5 (HFS+) (NTFS)» заставило его перестать обновлять непосещенные каталоги. Но через день он сделал это снова. Немедленное повторение не обновило их. Вход в Windows сделал это снова. НО, с тех пор это происходит КАЖДЫЙ раз, независимо от того, вошли ли вы в Windows или нет. Даже если команды rsync находятся на расстоянии секунды. Опять же, даже с ненужными обновлениями, это займет всего секунду, так что это не имеет большого значения. Но это делает чтение списка файлов менее удобным. WGroleau

Рассмотрите возможность тестирования с этими опциями для решения:

  •   --size-only             skip files that match in size
      -c, --checksum              skip based on checksum, not mod-time & size
      -O, --omit-dir-times        omit directories from --times
    

    источник


Дополнительно. , ,

Поскольку -a (--archive) включает неявные параметры и эквивалентно параметрам -rlptgoD :

  • -r, --recursive             recurse into directories
    -l, --links                 copy symlinks as symlinks
    -p, --perms                 preserve permissions
    -t, --times                 preserve modification times
    -g, --group                 preserve group
    -o, --owner                 preserve owner (super-user only)
    -D                          same as --devices --specials
    

    источник

вам может потребоваться опустить некоторые из этих опций в явном виде с помощью --no-OPTION чтобы гарантировать, что определенные атрибуты [игнорируются] не сравниваются между этими двумя различными файловыми системами, которые вы синхронизируете.

Например, добавьте один из них, например:

  • --no-o игнорирует атрибут владельца
  • --no-g игнорирует атрибут группы
  • --no-times игнорирует атрибуты времени

Важный: порядок опций важен: если вы укажете --no-r -a, опция -r конечном итоге будет включена, в отличие от -a --no-r.

  • --no-OPTION
    
        You may turn off one or more implied options by prefixing the option name
        with lqno-rq. Not all options may be prefixed with a lqno-rq: only options   
        that are implied by other options (e.g. --no-D, --no-perms) or have 
        different defaults in various circumstances (e.g. --no-whole-file, --no-
        blocking-io, --no-dirs). You may specify either the short or the long option 
        name after the lqno-rq prefix (e.g. --no-R is the same as --no-relative).
    
    For example: if you want to use -a (--archive) but don't want
    
        -o (--owner), instead of converting -a into -rlptgD, you could specify -a --
        no-o (or -a --no-owner).
    
    The order of the options is important: if you specify --no-r -a, the
    
        -r option would end up being turned on, the opposite of -a --no-r. Note also 
        that the side-effects of the --files-from option are NOT positional, as it '   
        affects the default state of several options and slightly changes the 
        meaning of -a (see the --files-from option for more details).
    

    источник


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

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .