Назад | Перейти на главную страницу

Ускорьте резервное копирование только ACL в больших файловых системах

Я пытаюсь сделать быстрые резервные копии только списков ACL в больших файловых системах GNU / Linux. Расширенные разрешения на самом деле не нужны.

Я провожу 4 небольших теста на небольшом разделе, чтобы оценить прошедшее время (в секундах) и полученные размеры файлов (мегабайты).

Так ls это лучшее решение, если нужна группа user: group.

В идеале out_file должно выглядеть так:

755 user:group /full/path/to/dir
744 user:group /full/path/to/file
...

Но насколько я знаю, получение полного пути к файлу из ls требует дополнительных команд, которые замедлят процесс. Речь идет об очень больших файловых системах.

Нет лучшего (более быстрого / эффективного) инструмента, чем ls справиться с этим?

Почему find так сильно замедляются при получении информации о пользователе: группе по сравнению с ls?

В качестве плюса ls может также обрабатывать экранирование специальных символов в именах файлов (с -b вариант).

Решено: (спасибо @shodanshok) Впервые после sync:

Но второй раз запускаем ту же команду:

По моему опыту, getfacl может быть привязан к ЦП процессом разрешения имени пользователя. Попробуйте добавить -n переключатель, например выдача getfacl -n -R -p /backup/dir > out_file

Во время тестов обратите особое внимание на кеш inode / dentry, так как он может легко исказить ваш синхронизированный тест. Перед каждым тестом выполните следующую команду, чтобы очистить оба кеша: sync; echo 3 > /proc/sys/vm/drop_caches