- Home »

Установка 7zip на Ubuntu — архивирование и распаковка файлов
Друзья, а знаете ли вы, что 7zip — это не просто ещё один архиватор, а настоящий швейцарский нож для работы с архивами в Ubuntu? Для тех, кто занимается администрированием серверов, резервным копированием или просто хочет эффективно сжимать файлы, 7zip станет незаменимым инструментом. Сегодня разберём, как правильно установить и использовать эту утилиту, чтобы получить максимум от её возможностей.
Что такое 7zip и зачем он нужен на сервере
7zip — это open-source архиватор, который поддерживает множество форматов и предлагает один из лучших алгоритмов сжатия среди бесплатных решений. В серверном окружении он особенно полезен для:
- Создания автоматических бэкапов с высокой степенью сжатия
- Распаковки архивов различных форматов (ZIP, RAR, TAR, 7z и др.)
- Работы с зашифрованными архивами
- Интеграции в скрипты для автоматизации задач
- Экономии дискового пространства на сервере
Установка 7zip на Ubuntu
Устанавливать 7zip в Ubuntu проще простого. Существует несколько способов, рассмотрим самые популярные:
Способ 1: Установка из репозитория Ubuntu
sudo apt update
sudo apt install p7zip-full p7zip-rar
Пакет p7zip-full
содержит основной функционал, а p7zip-rar
добавляет поддержку RAR-архивов.
Способ 2: Установка через Snap
sudo snap install p7zip-desktop
Способ 3: Сборка из исходников
Для гиков, которые хотят самую свежую версию:
wget https://github.com/p7zip-project/p7zip/releases/download/v17.04/p7zip_17.04_src_all.tar.bz2
tar -xjf p7zip_17.04_src_all.tar.bz2
cd p7zip_17.04
make all3
sudo make install
Основные команды и их использование
После установки у вас появится доступ к нескольким командам:
7z
— основная команда для работы с архивами7za
— standalone версия с базовым функционалом7zr
— урезанная версия только для .7z архивов
Создание архивов
# Создание обычного архива
7z a backup.7z /path/to/files
# Создание архива с максимальным сжатием
7z a -mx=9 backup.7z /path/to/files
# Создание зашифрованного архива
7z a -p"password" backup.7z /path/to/files
# Создание архива с разбивкой на части (по 100MB)
7z a -v100m backup.7z /path/to/files
# Исключение файлов по маске
7z a backup.7z /path/to/files -x!*.tmp -x!*.log
Распаковка архивов
# Распаковка в текущую папку
7z e archive.7z
# Распаковка с сохранением структуры папок
7z x archive.7z
# Распаковка в конкретную папку
7z x archive.7z -o/path/to/extract
# Распаковка с паролем
7z x archive.7z -p"password"
# Принудительная перезапись файлов
7z x archive.7z -y
Просмотр содержимого архива
# Краткий список файлов
7z l archive.7z
# Подробная информация
7z l -slt archive.7z
# Тестирование целостности архива
7z t archive.7z
Практические примеры для серверного администрирования
Скрипт автоматического бэкапа
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/var/backups"
SOURCE_DIR="/var/www"
ARCHIVE_NAME="website_backup_$DATE.7z"
# Создание архива с максимальным сжатием и паролем
7z a -mx=9 -p"your_secure_password" "$BACKUP_DIR/$ARCHIVE_NAME" "$SOURCE_DIR"
# Удаление старых бэкапов (старше 7 дней)
find "$BACKUP_DIR" -name "website_backup_*.7z" -mtime +7 -delete
echo "Backup created: $ARCHIVE_NAME"
Мониторинг размера архивов
#!/bin/bash
# Скрипт для сравнения размеров до и после архивации
ORIGINAL_SIZE=$(du -sb /path/to/files | cut -f1)
7z a -mx=9 backup.7z /path/to/files
ARCHIVE_SIZE=$(stat -c%s backup.7z)
COMPRESSION_RATIO=$(echo "scale=2; $ARCHIVE_SIZE * 100 / $ORIGINAL_SIZE" | bc)
echo "Original size: $(numfmt --to=iec $ORIGINAL_SIZE)"
echo "Archive size: $(numfmt --to=iec $ARCHIVE_SIZE)"
echo "Compression ratio: $COMPRESSION_RATIO%"
Сравнение с другими архиваторами
Архиватор | Степень сжатия | Скорость | Поддержка форматов | Шифрование |
---|---|---|---|---|
7zip | Отличная | Средняя | Широкая | AES-256 |
gzip | Хорошая | Быстрая | Ограниченная | Нет |
ZIP | Средняя | Быстрая | Стандартная | Слабое |
RAR | Отличная | Средняя | Средняя | AES-128 |
Продвинутые возможности и хитрости
Работа с многотомными архивами
Особенно полезно для загрузки больших файлов на сервер через ограниченное соединение:
# Создание многотомного архива
7z a -v1g backup.7z /large/directory
# Распаковка (достаточно указать первый том)
7z x backup.7z.001
Интеграция с systemd для автоматизации
Создайте файл /etc/systemd/system/backup.service
:
[Unit]
Description=Daily backup service
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/7z a -mx=9 /backup/daily_$(date +\%Y\%m\%d).7z /var/www
[Install]
WantedBy=multi-user.target
И таймер /etc/systemd/system/backup.timer
:
[Unit]
Description=Run backup daily
Requires=backup.service
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
Использование с облачными хранилищами
# Создание архива и загрузка в облако одной командой
7z a -si backup.7z /var/www | aws s3 cp - s3://your-bucket/backup.7z
# Скачивание и распаковка из облака
aws s3 cp s3://your-bucket/backup.7z - | 7z x -si -tzip
Оптимизация производительности
Настройка параметров сжатия
Различные уровни сжатия для разных задач:
-mx=1
— быстрое сжатие для временных архивов-mx=5
— сбалансированный вариант (по умолчанию)-mx=9
— максимальное сжатие для долгосрочного хранения-mx=0
— без сжатия (только упаковка)
Многопоточность
# Использование всех доступных ядер
7z a -mmt=on backup.7z /path/to/files
# Ограничение количества потоков
7z a -mmt=4 backup.7z /path/to/files
Решение типичных проблем
Проблема с кодировкой файлов
Если в архиве есть файлы с кириллическими именами:
# Для Windows-архивов
7z x archive.zip -scs=WIN
# Для DOS-архивов
7z x archive.zip -scs=DOS
Работа с повреждёнными архивами
# Попытка восстановления
7z x archive.7z -y -aos
# Извлечение максимального количества файлов
7z e archive.7z -bd -y
Интеграция с другими инструментами
Совместное использование с rsync
#!/bin/bash
# Синхронизация с удалённым сервером и создание архива
rsync -av user@remote:/path/to/data /local/backup/
7z a -mx=9 backup_$(date +%Y%m%d).7z /local/backup/
Использование с Docker
# Создание архива Docker-контейнера
docker export container_name | 7z a -si -mx=9 container_backup.7z
Мониторинг и логирование
Для отслеживания работы архивации в продакшене:
#!/bin/bash
LOG_FILE="/var/log/backup.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')
echo "[$DATE] Starting backup..." >> $LOG_FILE
if 7z a -mx=9 backup.7z /var/www >> $LOG_FILE 2>&1; then
echo "[$DATE] Backup completed successfully" >> $LOG_FILE
else
echo "[$DATE] Backup failed with error $?" >> $LOG_FILE
# Отправка уведомления
echo "Backup failed on $(hostname)" | mail -s "Backup Error" admin@example.com
fi
Безопасность при работе с архивами
Важные моменты для серверного окружения:
- Всегда используйте сильные пароли для шифрования
- Регулярно тестируйте восстановление из архивов
- Храните архивы в отдельной файловой системе
- Используйте проверку целостности:
7z t archive.7z
Альтернативные решения
Хотя 7zip отличный выбор, стоит знать и о других инструментах:
- tar + gzip/xz — классика Unix, быстрая и надёжная
- zstd — современный алгоритм от Facebook с отличным балансом скорости и сжатия
- pigz — параллельная версия gzip для многоядерных систем
- brotli — от Google, хорош для веб-контента
Для задач, где нужен VPS или выделенный сервер с большим объёмом данных, правильный выбор архиватора может существенно сэкономить место и время.
Заключение и рекомендации
7zip — это мощный и универсальный инструмент, который должен быть в арсенале каждого системного администратора. Его главные преимущества:
- Отличная степень сжатия экономит дисковое пространство
- Поддержка множества форматов архивов
- Возможность интеграции в скрипты автоматизации
- Бесплатность и открытый исходный код
- Надёжное шифрование для защиты данных
Рекомендую использовать 7zip для:
- Создания сжатых бэкапов с регулярным расписанием
- Архивации логов и старых данных
- Подготовки файлов для передачи по сети
- Работы с архивами различных форматов
Главное — не забывайте регулярно тестировать восстановление из ваших архивов, потому что бэкап без возможности восстановления — это просто трата места на диске. Удачи в администрировании!
Официальная документация проекта доступна на https://www.7-zip.org/, а исходный код можно найти на GitHub.
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.