Показывать только измененные файлы при синхронизации с ext4 в NTFS


9

Я хотел бы, чтобы rsync печатал измененные и удаленные файлы. Опция verbose (-v) печатает измененные файлы, а также список подкаталогов, возможно, потому что затронутые каталоги считаются измененными. Поскольку я синхронизирую множество файлов из множества подкаталогов, невозможно увидеть реальные изменения.

Итак, есть ли способ не печатать каталоги с помощью rsync?

Я не ищу grep -v "*/$"вид ответов, так как это также исключило бы новые каталоги.

Команда, которую я использую: rsync -avh --delete /media/data/src /media/data/bkp

И каждый раз печатает список всех каталогов:

src/dir1/

src/dir1/sdir1/

src/dir1/sdir2/

src/dir2/

РЕДАКТИРОВАТЬ: Хорошо, после некоторых интенсивных тестов .. Он не печатает все каталоги при синхронизации из раздела ext4 в ext4 и из NTFS в NTFS. Это происходит только при синхронизации с ext4 в NTFS. И параметры -cили --omit-dir-timesне изменять это.

Ответы:


4

Вы можете попробовать использовать --omit-dir-timesswitch, чтобы игнорировать времена каталогов (взгляните на справочную страницу rsync).

Лично я считаю, что использование -cswitch - лучший способ убедиться, что в выводе отображаются только файлы, содержимое которых было изменено.

Обратите внимание, что использование -cзамедлит rsync.


Спасибо за ответ. Мне трудно поверить, что он не поддерживается изначально, по крайней мере, без потери производительности (или опций). Мне просто нужно верить, что все это синхронизируется.
— Qox

Извините, моя правка изменила вопрос после вашего ответа.
— квартал

1

Вместо изменения типа монтирования вы также можете указать rsync игнорировать права доступа к файлу при копировании в файловую систему, которая его не поддерживает. Следующая команда работает для меня.

Со страницы руководства rsync:

В итоге: чтобы дать файлам назначения (как старым, так и новым) исходные разрешения, используйте --perms. Чтобы дать новым файлам права по умолчанию для назначения (оставляя существующие файлы без изменений), убедитесь, что опция --perms отключена, и используйте --chmod = ugo = rwX (что обеспечивает включение всех немаскированных битов). Если вы хотите упростить ввод этого последнего поведения, вы можете определить для него псевдоним popt, например, поместить эту строку в файл ~ / .popt (ниже определяется параметр -Z, и он включает --no- g использовать группу по умолчанию для каталога dir):

rsync alias -Z --no-p --no-g --chmod=ugo=rwX

1

не используйте -a, он содержит -p -o -g.


Вы все еще можете использовать, -aесли хотите, а затем добавить, --no-o --no-p --no-gчтобы пропустить владельца, группы и разрешения.
— Ян Данн

0

Похоже, это была проблема с разрешением. Не уверен почему .. Но я отредактировал / etc / fstab для разделов NTFS, и теперь он работает как положено, то есть не печатает каталоги, которые не были изменены.

Старая запись fstab: пользователи ntfs-3g, значения по умолчанию, exec, uid = 1000 0 0

Новая запись в fstab: пользователи ntfs-3g, значения по умолчанию, exec, uid = 1000, gid = 1000, dmask = 077, fmask = 137 0 0

Я предполагаю (кто знает ..) dmask = 077 сделал трюк, то есть «drwx ---» вместо «drwxrwx».


-1

Я использовал:

sudo rsync -auzhni --progress --omit-dir-times --no-o  src_dir/ dst_dir 

Это пробный прогон (опция n). Удалите эту опцию, чтобы rsyncфактически передавать файлы.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.