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

989
WGroleau

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

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

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

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

2
Well, that's not it either. It's crazy. I noticed it was updating unvisited directories again, and I immediately repeated the rsync command. No directories! Then I logged into the windows machine while repeating rsync on the Mac. The moment the Windows desktop appear, rsync immediately updated all those directories. But, it continued to do so as long as Windows was logged in. WELL, I thought, maybe it is wasting CPU time doing unnecessary refreshes. So I logged out. rsync _continues_ to update those directories! So I'm back to the beginning, i.e., DUNNO. WGroleau 7 лет назад 0
Adding the modify-window in “rsync -av --bwlimit=200 --delete --modify-window=5 (HFS+) (NTFS)” made it stop updating unvisited directories. But a day later it did it again. An immediate repeat did not update them. Logging into Windows made it happen again. BUT, since then, it happens EVERY time, whether logged into Windows or not. Even if the rsync commands are only a second apart. Again, even with the unnecessary updates, it only takes a second, so it's not a big deal. But it does make reading the file list less convenient. WGroleau 7 лет назад 0

3 ответа на вопрос

1
Pimp Juice IT

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

Появляется в этом типе установки, когда вы монтируете в раздел 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). 

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

The initial answer stopped the odd behavior temporarily, so I accepted it. Then the odd behavior returned, and I thought I figured out that logging into Windows changed the timestamp. But that turned out incorrect, so I thought logging out of Windows would stop changing timestamps, but that also didn't pan out. So I reluctantly unaccept the answer, because although PJI’s advice worked for a a day, it no longer works. And I can’t blame Bill Gates any more—he retired before I did. WGroleau 7 лет назад 0
@WGroleau I just added another answer that you may find helpful in resolving your issue. Let me know how it goes. This is equivalent somewhat to the `Robocopy /FFT` switch I added earlier when I got confused and then removed that once I realized. . . Rsync not Robocopy, d'oh.... Pimp Juice IT 7 лет назад 0
The school also contracted for a one terabyte "OneDrive" so I decided to try that. It kind of sucks, too. Says everything is up-to-date, when it isn't. And to print a one-page PDF from the local Windows takes a few seconds. To do it from OneDrive takes more than a minute. But they won't let me install Dropbox. WGroleau 7 лет назад 0
0
Frostalf

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

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

It was the timestamps. But your first part doesn't make sense. The directories are auto-mounted. That means Samba is getting user name and password from my operating system, NOT from each individual app. Second, I said "quite often," not "always." Mac OS doesn't change my username or password at random times, and Windows shouldn't. The access problem occurs with both the public share and the directory that is supposedly mine alone. Also, it's sometimes read-only, sometimes no access at all. Since the symptoms change so often, I stand by my "something flaky with their LAN." WGroleau 7 лет назад 0
Mac OS работает аналогично Linux. В Linux не все программное обеспечение, установленное на нем, работает под тем же именем пользователя, под которым вы вошли. Приведенный пример веб-сервера Apache, если вы его установили, по умолчанию использует пользовательские www-данные. Но вы все равно можете использовать его под своим текущим логином. Теперь, если в общих папках Windows программа не работала под текущим вошедшим в систему именем пользователя, которое, как предполагается, для общей папки Windows будет использовать общий ресурс, ей могут быть предоставлены другие права доступа. Также это зависит от того, как настроена samba. Frostalf 7 лет назад 0
(1) None of my applications have the sticky-bit set. They all run as me. (2) If it were a permissions error, it would say so every time instead of sometimes no problem, sometimes permissions, sometimes other more cryptic messages. (3) If it were a permissions error, rsync wouldn't work either. WGroleau 7 лет назад 0
третье не совсем верно, для отправки файлов в другом направлении да, для получения нет, так как вы можете rsync все, что в направлении к вашему компьютеру, если он может читать каталоги. В любом случае, кроме сути. Тогда я бы посмотрел на вашу конфигурацию самбы, чтобы убедиться, что она правильная. Windows имеет несколько различных вариантов протокола обмена файлами, поэтому возможно, что Samba использует более старую версию протокола Windows. Не совсем уверен. В любом случае стоит посмотреть, чтобы ваши настройки не были проблемой. Другая проблема может быть из-за приложений, либо ошибка, либо что-то еще. Frostalf 7 лет назад 0
I have two directories in the same disk on the same server mounted with the same syntax. The two don't always behave the same as each other, or the same as they did five minutes earlier when /etc/auto_smb has not changed. An error in the syntax of that file will not make it work intermittently. The network is flaky. WGroleau 7 лет назад 0
0
Pimp Juice IT

Явно исключить неявные -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). 

    источник


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

Since OneDrive sucks, I may take a closer look at this. Also, I just discovered this related question: http://superuser.com/questions/716549/rsync-on-ntfs-permissions?rq=1 WGroleau 7 лет назад 0
@WGroleau Меня наверняка заинтересует ваше окончательное рабочее решение. Удачи!! Я пытался помочь! Pimp Juice IT 7 лет назад 0
The sad part is that the only reason I even touch Windows is to print the results of my work on Mac. Trying to access network printers through Samba/WiFi is even worse than trying to access the fileserver. I'm sure they won't let me use Robocopy. I think my solution may be to buy my own printer. WGroleau 7 лет назад 0
@WGroleau Quick couple ideas for you to easily test (I'll be happy to update an answer if it works) but check with using these two rsync options when you get a chance `rsync -av --bwlimit=200 --delete --checksum (HFS+) (NTFS)` or `rsync -av --bwlimit=200 --delete --omit-dir-times --modify-window=5 (HFS+) (NTFS)` Pimp Juice IT 7 лет назад 0
I almost did. Fortunately, before I hit return, I realized that I already rearranged things for OneDrive, do if I were to run it now, it would try to delete Desktop, Documents, and Favorites on the windows side! If OneDrive keeps misbehaving, I'll just walk over to Walmart and buy some paper for the non-networked printer downstairs in the dorm. I appreciate the attempt, though. I might have to do it again some day. WGroleau 7 лет назад 0
@WGroleau Звучит хорошо, может быть, это будет полезно для кого-то другого; трудно, когда тебя нет и ты не видишь этого, но согласно документам, некоторые из этих опций должны помочь с тем, что ты объяснил. Pimp Juice IT 7 лет назад 0