Показывать только измененные файлы при синхронизации с 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.