Вопрос или проблема
Я сейчас пытаюсь создать “поверхностную” резервную копию всей своей файловой системы, что означает, что я должен иметь возможность каким-то образом сохранить текущую полную структуру файловой системы, включая в основном права собственности и разрешения файлов, без фактических содержимых файлов для быстрой “снимка” файловой системы на случай, если я испорчу разрешения позже, чтобы я мог восстановить права собственности и разрешения рекурсивно в таком случае.
Основные задачи:
- Резервная копия должна быть очень маленькой по размеру, так как она содержит только метаданные (предпочтительно только атрибуты собственности и разрешений)
- Резервная копия должна быть быстрее для создания по сравнению с фактической резервной копией
- Резервная копия должна быть возможной для восстановления 1:1 к оригинальной цели (игнорируя новые файлы, отсутствующие в резервной копии)
Будет ли это возможно, например, с использованием rsync, tar или подобных инструментов?
Похожий вопрос был задан здесь.
Тем не менее, я ищу полное/всестороннее решение описанной проблемы и задач.
Я могу попробовать ответить на вопрос сам. Этот ответ, вероятно, требует исправлений.
Чтобы сделать резервную копию директории, только атрибуты рекурсивно и с сохранением, и используя tar для хранения результирующей структуры в одном файле, можно использовать:
[sudo] cp -rT --attributes-only --preserve=mode,ownership /path/to/source /path/to/dest
[sudo] tar -C / -cf /path/to/backup.tar /path/to/dest
А для восстановления используйте обратный подход:
[sudo] tar -C / -xf /path/to/backup.tar
[sudo] cp -rT --attributes-only --preserve=mode,ownership /path/to/dest /path/to/source
Требуется root/sudo для сохранения
Ответ или решение
Резервное копирование и восстановление метаданных файловой системы
Создание "поверхностной" резервной копии файловой системы, которая включает только метаданные, такие как владельцы файлов и права доступа, — важная задача для администратора. Это позволяет быстро восстановить структуру файловой системы в случае ошибок с правами доступа. В данном ответе рассмотрим, как реализовать эту задачу с использованием инструментов, таких как tar
и cp
.
Шаг 1: Резервное копирование метаданных
Для создания резервной копии файловой системы, хранящей только атрибуты файлов с их правами доступа и владельцами, выполните следующие команды:
-
Создание временной директории для хранения метаданных:
sudo mkdir /path/to/dest
-
Копирование атрибутов с помощью команды
cp
:sudo cp -rT --attributes-only --preserve=mode,ownership /path/to/source /path/to/dest
Здесь:
-rT
: означает рекурсивное копирование с указанием, что/path/to/dest
является целевой директорией.--attributes-only
: копирует только атрибуты, не включая содержимое файлов.--preserve=mode,ownership
: сохраняет права доступа и владельца файлов.
-
Создание архивного файла с метаданными с помощью
tar
:sudo tar -C / -cf /path/to/backup.tar /path/to/dest
В этом шаге архивируется созданная директория в один файл, что облегчает хранение резервной копии.
Шаг 2: Восстановление метаданных
В случае необходимости восстановить метаданные файловой системы, выполните следующие команды:
-
Распаковка резервной копии с помощью
tar
:sudo tar -C / -xf /path/to/backup.tar
Данная команда извлечет содержимое архива в корневую файловую систему, создавая временную директорию.
-
Копирование атрибутов обратно в исходное местоположение:
sudo cp -rT --attributes-only --preserve=mode,ownership /path/to/dest /path/to/source
Этот шаг восстановит только атрибуты файлов (права и владельцев) в исходное местоположение.
Важные замечания
-
Права администратора: Для выполнения всех команд Вам потребуется права суперпользователя, так как без них невозможно сохранить или восстановить владельцев и права доступа.
-
Проверка: Рекомендуется периодически проверять резервные копии на целостность, чтобы убедиться, что они могут быть успешно восстановлены.
-
Совместимость: Убедитесь, что используемые командные опции совместимы с вашей версией
cp
иtar
, так как они могут варьироваться в зависимости от дистрибутива Linux.
Заключение
Обзор показал, как осуществить резервное копирование и восстановление файловой системы, сохраняя только ее атрибуты. Этот подход минимизирует место на диске и время, затрачиваемое на резервное копирование. Это позволяет эффективно управлять метаданными файлов в системе, а также восстанавливать их в случае необходимости. Следуя представленным шагам, вы сможете создать надежную и быструю процедуру резервного копирования для метаданных вашей файловой системы.