Показувати лише змінені файли під час синхронізації з ext4 до NTFS


9

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

Отже, чи існує спосіб не надрукувати каталоги за допомогою rsync?

Я не шукаю grep -v "*/$"відповідей, оскільки це також виключає нові каталоги.

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

І щоразу друкує список усіх каталогів:

src/dir1/

src/dir1/sdir1/

src/dir1/sdir2/

src/dir2/

EDIT: Гаразд, після інтенсивних тестів. Він не друкує всі каталоги при синхронізації з розділу ext4 до ext4 та від NTFS до NTFS. Це робиться лише при синхронізації з ext4 до NTFS .. І параметри, -cабо --omit-dir-timesне змінювати це.

Відповіді:


4

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

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

Зауважте, що використання -cсповільнить rsync.


Дякую за відповідь. Мені важко повірити, що це не підтримується споконвічно, принаймні без втрати продуктивності (або варіантів). Мені просто доведеться довіряти, що це синхронізує все.
qox

Вибачте, моя редакція змінила питання після вашої відповіді.
qox

1

Замість зміни типу кріплення ви можете також сказати rsync ігнорувати дозволи файлів під час копіювання у файлову систему, яка не підтримує його. Наступна команда працює для мене.

З сторінки man 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, маска = 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.