Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Linux / DevOps

Резервное копирование папки в Linux через tar: сжатие в Gzip и Bzip2

Обновлено: 27.08.2026 · Официальная документация ↗

Зачем использовать утилиту tar для создания бэкапов

В операционных системах Linux архиватор tar (Tape Archive) является стандартом де-факто для создания бэкапов. В отличие от обычного копирования файлов, утилита tar бережно сохраняет все метаданные операционной системы: права доступа (chmod), владельцев файлов (chown), скрытые конфигурационные файлы (dotfiles) и символические ссылки, объединяя их в один компактный архивный файл.

Сравнение алгоритмов сжатия Gzip и Bzip2

АлгоритмФлаг tarРасширениеСкоростьСтепень сжатияКогда использовать
Gzip-z.tar.gzОчень высокаяСредняяСтандартный выбор: быстрые ежедневные бэкапы сайтов и баз.
Bzip2-j.tar.bz2МедленнееВысокаяДолговременные архивы для максимальной экономии диска.

Пошаговое создание и проверка бэкапов

Шаг 1: Создание быстрого бэкапа со сжатием Gzip (.tar.gz)

Создадим бэкап папки сайта /var/www/my_site с добавлением текущей даты в имя архива:

sudo tar -czvf backup_site_$(date +%Y-%m-%d).tar.gz /var/www/my_site

Разбор флагов:

  • -c (Create) — создать новый архив.
  • -z (gzip) — сжать архив с помощью алгоритма Gzip.
  • -v (Verbose) — показывать список упаковываемых файлов на экране.
  • -f (File) — имя создаваемого файла архива (всегда ставится последним перед именем).

Шаг 2: Создание архива с максимальным сжатием Bzip2 (.tar.bz2)

sudo tar -cjvf heavy_backup_$(date +%Y-%m-%d).tar.bz2 /var/log

Шаг 3: Исключение ненужных папок и кэша из архива (--exclude)

Чтобы не раздувать бэкап временными файлами, кэшем и тяжелыми папками зависимостей (например, node_modules или cache), добавьте флаг исключения:

sudo tar --exclude='/var/www/my_site/cache' --exclude='*.log' -czvf clean_backup.tar.gz /var/www/my_site

Шаг 4: Просмотр содержимого архива без распаковки (-t)

Убедитесь, что файлы упаковались правильно:

tar -ztvf backup_site_*.tar.gz

Шаг 5: Восстановление данных из архива (-x)

Распакуем архив в нужную целевую папку с флагом -C:

sudo tar -xzvf clean_backup.tar.gz -C /var/www/restored_site/

Типовые ошибки администраторов

  • Помещение архива внутрь упаковываемой папки: Если вы находитесь внутри папки /var/www/site и создаете архив backup.tar.gz прямо в ней, tar попытается упаковать свой собственный растущий архивный файл, что вызовет ошибку «file changed as we read it» и переполнение диска.
  • Относительные пути против абсолютных: При создании бэкапа с абсолютным путем /var/www tar автоматически удаляет ведущий слеш / (выводя сообщение «Removing leading '/' from member names»). Это сделано для безопасности, чтобы при распаковке случайно не перезаписать системные файлы в корне диска.
Требуется настроить автоматическое резервное копирование серверов в удаленное облако?
ITSTM внедрит инкрементальные бэкапы с дедупликацией (Restic / BorgBackup), сквозным шифрованием и ежедневной проверкой целостности восстановления.
💡 Практика специалистов: При архивировании активных баз данных MySQL или PostgreSQL никогда не делайте tar рабочей директории '/var/lib/mysql' на лету — архив получится поврежденным (битые таблицы). Всегда сначала снимайте логический дамп (mysqldump / pg_dump) или используйте специализированный инструмент горячего бэкапа Percona XtraBackup.

Частые вопросы (FAQ)

Как распаковать архив .tar.bz2?

Используйте флаг -j вместо -z: tar -xjvf archive.tar.bz2 -C /целевая/папка/

Какой современный формат сжатия еще эффективнее, чем bzip2?

Формат XZ (флаг -J, расширение .tar.xz). Он обеспечивает самое плотное сжатие данных, но требует больше оперативной памяти и процессорного времени при архивации.

Как оценить реальный размер созданного архива?

Выполните команду: ls -lh backup_*.tar.gz или du -sh backup_*.tar.gz.

Сохраняет ли tar права доступа к файлам при распаковке?

Да, если распаковка выполняется с правами суперпользователя (sudo), tar восстанавливает оригинальных владельцев (UID/GID) и права (chmod) файлов.

Полезные материалы
Рекомендуем