Показувати лише змінені файли під час синхронізації з 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.