Резервная копия tar: проверяем восстановление, а не наличие архива

2 мин чтения

Делаем файловую копию через tar и проверяем её распаковкой в отдельный каталог.

От согласованных файлов к рабочей копии
  1. Исходные данныеОбеспечиваем согласованность перед архивацией
  2. Архив tarСоздаём копию и проверяем список файлов
  3. РаспаковкаВосстанавливаем отдельно и сверяем содержимое

Архив tar.gz лежит на диске, но мы ещё не знаем, что в нём: все ли файлы попали, удобны ли пути и удастся ли их вернуть. Поэтому вместе с созданием копии сразу проверим её содержимое и распаковку. Для работающей базы данных одного файлового архива недостаточно — к этому ограничению тоже вернёмся.

Создаём копию вне исходного дерева

tar -czf /backup/project-files.tar.gz -C /srv project-files
gzip -t /backup/project-files.tar.gz
tar -tzf /backup/project-files.tar.gz

Каталог backup должен быть отдельным заранее подготовленным местом с достаточным объёмом и подходящим доступом. Архив не помещают внутрь копируемого дерева. Параметр C помогает сохранить относительные имена без ненужной части абсолютного пути. Первая проверка выявляет повреждение сжатого потока, вторая позволяет просмотреть состав. Обе проверки важны, но ни одна не подтверждает работоспособность восстановленного приложения.

Распаковываем в отдельный каталог

mkdir -p /tmp/project-restore-check
tar -xzf /backup/project-files.tar.gz -C /tmp/project-restore-check

Для упражнения выбирайте новый пустой каталог, чтобы не переписать рабочие файлы. Сначала изучите список членов архива. Архивы неизвестного происхождения требуют отдельного осторожного разбора, особенно при повышенных правах. После распаковки сравните несколько важных документов, число ожидаемых объектов и доступность файлов нужной учётной записи. Проверять только самый маленький файл недостаточно.

Если данные изменяются во время чтения, копия может объединить разные моменты времени. Для базы данных обычно нужен её штатный механизм резервирования, а для приложения — согласованный режим остановки записи или снимок с подтверждёнными гарантиями. Простое копирование открытых файлов базы через tar не становится полноценным резервированием из-за успешного завершения команды.

Определяем границы копии

Заранее решите, нужны ли расширенные атрибуты, ACL, специальные файлы и сведения о владельцах. Их сохранение и восстановление зависят от параметров, прав и целевой файловой системы. Команда из примера не обещает точного клонирования всей операционной системы. Для переноса сервера дополнительно нужны конфигурация, пакеты, секреты и последовательность запуска служб.

Сохраните рядом с копией дату проверки и порядок восстановления. Единственный архив на том же диске не поможет при отказе диска, поэтому нужна независимая копия. Периодически распаковывайте её в тестовую папку, читайте нужные файлы и замеряйте восстановление. Так будет известно, что именно и за какое время удаётся вернуть.

Источники и дальнейшее чтение