Из-за временных ограничений на территории РФ наблюдаются проблемы с оплатой. Если платёж не проходит, оставьте запрос в службу поддержки.Служба поддержки работает 24/7 — мы всегда на связи по вопросам хостинга и серверов.Открыт прием заявок на аренду выделенных серверов и размещение оборудования в дата-центре.Напоминаем: рекомендуем включить резервное копирование для дополнительной защиты данных.Доступна новая линейка VPS/VDS с NVMe-дисками и увеличенной производительностью.Технические работы на части серверов завершены. Все сервисы работают в штатном режиме.
Статья5 мин чтенияПросмотры4

Как проверить архив tar.gz до распаковки

Как проверить tar.gz до распаковки: команды gzip и tar, коды завершения и пять реальных примеров. Почему список файлов и даже код 0 не гарантируют пригодность резервной копии.

Комментарии 0

Накопители в защитном футляре для хранения резервных копий
В этой статье

Архив имеет ожидаемый размер и открывается в файловом менеджере. Это полезный признак, но перед восстановлением стоит проверить его точнее. У файла tar.gz есть как минимум два уровня: сжатый поток gzip и структура архива tar внутри. Их проверка решает разные задачи.

Сначала проверьте gzip

Инструкция рассчитана на GNU gzip и GNU tar в Linux. Файл backup.tar.gz — пример имени уже полностью записанного архива. Перед проверкой убедитесь, что процесс резервирования или копирования завершён.

gzip -t -- backup.tar.gz

Команда проверяет целостность сжатого потока без извлечения содержимого в каталог. Обычно успешная проверка не печатает развёрнутый отчёт; для сценария важен код завершения. Ошибка должна сохраняться в результате, а не теряться из-за следующей команды.

Большой архив будет прочитан целиком. Учитывайте дисковую нагрузку и не запускайте множество проверок одновременно на томе, который уже испытывает проблемы.

Посмотрите, что лежит внутри

Для списка объектов tar:

tar -tzf backup.tar.gz

Это просмотр, а не распаковка. Сверьте ожидаемые каталоги, имена и наличие нужных компонентов. Для подробного списка с метаданными применяется вариант -tvzf.

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

Что показала проверка на небольшом стенде

2 октября 2026 года мы проверили команды в изолированном Linux-окружении с GNU tar 1.35 и GNU gzip 1.12. Учебный архив good.tar.gz содержал site/index.html и db.sql; SQL-файл был текстовым образцом, а не копией рабочей базы. Другие варианты создали из этих же тестовых данных. Рабочие сайты и резервные копии клиентов не использовались; извлечение файлов не выполнялось.

Вариант файла

gzip -t

tar: код и список

Следующий шаг

good.tar.gz: два учебных файла

0

0; site/index.html, db.sql

Сверить состав, затем отдельно проверять восстановление.

truncated.tar.gz: удалены последние 8 байт

1

2; оба имени успели появиться

Получить полную копию; напечатанные имена не отменяют ошибку.

not-tar.gz: сжатый текст длиной 2688 байт

0

2; списка нет

Уточнить формат: целый gzip-поток не обязательно содержит tar.

files-only.tar.gz: только файл сайта

0

0; site/index.html

Если схема требует базу, найти её согласованную копию.

short-text.gz: сжатый текст длиной 41 байт

0

0; список пуст

Не принимать нулевые коды за наличие ожидаемых компонентов.

Для корректного учебного архива список выглядел так:

site/index.html

db.sql

У обрезанного файла gzip сообщил:

gzip: truncated.tar.gz: unexpected end of file

При чтении того же файла tar сначала напечатал оба имени, а затем завершился с кодом 2 и сообщениями:

gzip: stdin: unexpected end of file

tar: Child returned status 1

tar: Error is not recoverable: exiting now

Короткий текст в gzip дал особенно полезный контрпример: в этой версии GNU tar команда завершилась без ошибки и ничего не перечислила. Поэтому критерий предварительной проверки — успешные команды плюс ожидаемый состав. Даже эти условия ещё не подтверждают пригодность восстановления.

Как сохранить результат, а не потерять код ошибки

В обычном интерактивном Bash сохраните код сразу после проверяемой команды. В примере ниже список и ошибки записываются в отдельные файлы текущего каталога; выберите свободные имена, чтобы не затереть предыдущий отчёт.

gzip -t -- backup.tar.gz 2>gzip-check-errors.txt

gzip_rc=$?

tar --list --gzip --force-local --file=backup.tar.gz >archive-files.txt 2>tar-check-errors.txt

tar_rc=$?

printf 'gzip=%s tar=%s\n' "$gzip_rc" "$tar_rc"

В этом GNU tar параметр --force-local трактует двоеточие в имени файла как часть локального пути. Ненулевой результат или неожиданный список требуют разбора до распаковки. Если проверка включена в сценарий с set -e, используйте явную обработку неудачи через if: простой сценарий может завершиться до присваивания переменной.

Назначение проверки сжатого потока и коды результата описаны в руководстве GNU gzip.

Просмотр объектов без извлечения описан в руководстве GNU tar. Эти проверки стоит сохранить вместе с размером, временем создания и ожидаемым составом архива.

Проверьте смысл содержимого

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

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

Чего эти команды не доказывают

Успех проверки gzip и чтения tar не гарантирует бизнес-целостность базы данных, пригодность конфигурации или возможность запустить приложение. Даже полный список ожидаемых файлов не подтверждает, что резервная копия была сделана в согласованном состоянии.

Отдельно нужна проверка восстановления в изолированном окружении. Там оценивают запуск приложения и контрольные данные, не отправляя реальные письма и не обращаясь к боевым платёжным сервисам. В этой инструкции восстановление не выполняется.

Как оформить результат

Запишите имя архива, время его создания, размер, результат проверки gzip и результат чтения структуры tar. Если существует доверенная контрольная сумма, добавьте её сравнение отдельным пунктом. Не называйте архив проверенным восстановлением, если вы только прочитали список.

При ошибке сохраните исходный файл и сообщение, затем проверьте источник и процесс передачи. Не распаковывайте повреждённый архив поверх действующего сайта в надежде, что «основные файлы целые». Цель предварительного контроля — выявить проблему до того, как восстановление начнёт менять рабочие данные.

Обсуждение 0

Делись опытом и задавай вопросы. Комментарии без ссылок появляются после проверки редактором.

Пока никто не написал. Начни обсуждение.