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 не меняют это.

5 ответов5

4

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

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

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

1

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

1

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

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

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

rsync alias -Z --no-p --no-g --chmod=ugo=rwX
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 действительно передавал файлы.

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