Ubuntu 16.04 rsync - роблячи резервні копії сервера NAS, чи можу я сказати йому, щоб виключити всі каталоги .Trash?


1

Я використовую свій NAS для резервного копіювання декількох менших систем, які контролюють сонячну установку, використовуючи rsync. Це чудово працює. Тепер я хочу створити резервну копію всього накопичувача NAS.

Для кожної машини Linux є підкаталоги - 8 з них.

Коли я дізнався більше і налаштував свої виключення, я бачу цілу кількість залишків, які я забув виключити раніше.

Раніше я виключав /lost+foundкаталоги, але не замислювався, /.trash-1000а зараз їх дуже багато.

Просто додаючи їх до --excludeсписку, навіть --deleteне видаляючи їх, оскільки виключення змушує програму rsync повністю пропускати їх.

Він працює не так, як це робить Robocopy / MIR.

Тож почнемо з .Trash, і я думаю, що відповідь допоможе мені, якщо я знайду інших, яких я спочатку забув виключити.

Очевидно, одне рішення - видалити весь каталог для кожного сервера по черзі, а потім повторно запустити повний rsync з новим набором виключень.

Але це, мабуть, дуже багато роботи.

Отже, моє запитання полягає в тому, що коли я роблю повну rsync накопичувача NAS, чи є загальний спосіб виключити всі папки .Trash-1000? Якщо це працює, я можу поміняти диски та відновити операції з чистішим.

Я шукаю щось подібне:

--exclude="*.Trash*"

... так що вони не копіювали б їх, незалежно від їх розташування в структурі каталогу.


Мені дуже хочеться знати, як це зробити за допомогою rsync, і я шукаю рішення проблеми, як додавання виключає причин rsync пропускати їх, а не видаляти їх.

Крім того, замість того, щоб робити це під час rsyncs, я вітаю відповідь, яка б показала мені, як шукати та знищувати ці каталоги на оригінальному накопичувачі NAS.

rsync - як змусити видаляти каталоги або файли, недавно додані до списку виключень


Отже, ви хочете видалити всі *.Trash*каталоги, які вже були скопійовані?
Аркадіуш Драбчик

@Arkadiusz, ТАК. Я б вітав команду, яка б шукала і знищувала їх усіх на оригіналі. Я змінити питання, щоб включити це, якщо ви хочете опублікувати його як відповідь. Це дійсно дуже допоможе у вирішенні негайної проблеми, навіть якщо вона не виправить rsync. TNX
SDsolar

Ну як щодо --delete-beforeта / та --delete-afterваріантів, як згадується у програмі Rsync - Man . Я думаю, що функція Robocopy, про яку ви звертаєтесь, є /PURGEваріантом, і я думаю, що один із цих двох або, можливо, обох зробить те, що вам потрібно - досить простий для тестування.
Pimp Juice IT

Так, / чистка має на увазі / mir в роботокопії. Це я хочу досягти. Але будь-який перемикач - видалити не застосовується до нічого в --exclude
SDsolar

Відповіді:


0

Ось декілька питань, які відповідають на альтернативу:

Як видалити каталоги на основі findвиводу?

Як видалити папки з певним іменем

знайти + видалити файли, що містять "."

І між ними я вважаю, що найкращим варіантом для нашої проблеми є видалення їх з оригінального диска, виконавши це в каталозі, який містить повне резервне копіювання інших систем:

cd /mnt/full
sudo rm -rf `sudo find -type d -name '.Trash-1000'`

Шукайте і знищуйте, ху-рах!

Це спрацювало і зробить роботу майбутнього rsync швидше в майбутньому.


Однак це не вирішує помилку rsync.


Якщо у когось є відповідь, яка змусить rsync видаляти каталоги, які я згодом додаю до --excludeсписку, то це буде відповідь, яку я з радістю прийму.


0

Щодо першої частини відповіді: як змусити її працювати як Robocopy / MIR (/ PURGE),

Виявляється, у rsync є a

--delete-excluded

перемикач.

Це вирішує проблему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.