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

qox
источник

Ответы:

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.

netawater
источник
Вы все еще можете использовать, -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».

qox
источник
-1

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

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

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

user291372
источник