Нещодавно мені довелося видалити та відтворити каталог NFS, щоб зменшити його розмір після того, як він раніше роздувся. У процесі я знайшов досить ефективний спосіб зробити це за допомогою rsync та жорстких посилань. Цей метод дозволяє уникнути копіювання фактичних файлів, одночасно досягаючи мети відтворення каталогу з тим самим вмістом.
Оскільки нам потрібен час простою, щоб виконати цю операцію під час нашого вікна технічного обслуговування, для нас було важливо зробити відновлений каталог якомога швидше. Якщо для вас важливіша простота, змініть першу команду переміщення на 'rm -rf' у вихідному каталозі та пропустіть іншу команду 'rm -rf'.
Я витягнув ці команди з більшого процесу та абстрагував імена каталогів, тож вибачте, якщо я помилився в цьому перекладі.
mkdir /tmp/holding_dir/
rsync -ai --delete --link-dest=/path/to/source_dir/ /path/to/source_dir/ /tmp/holding_dir/
mv /path/to/source_dir/ /tmp/deleteme/
mv /tmp/holding_dir/ /path/to/source_dir/
Потім пізніше видаляємо каталог. Залежно від розміру, для цього може знадобитися використовувати більш складний прийом. Наприклад, використання rsync зі значком --delete для синхронізації порожнього каталогу в цьому каталозі може бути більш ефективним.
rm -rf /tmp/deleteme/