Недавно мне пришлось удалить и воссоздать каталог 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/