Архивы в Linux нужны каждый день: бэкапы, перенос сайта на другой сервер, отправка логов, экономия места. Ниже основные утилиты и типовые команды: tar с gzip, xz и zstd, zip для обмена с Windows, шифрование через gpg, синхронизация rsync (21 сентября 2026 года вышла версия 3.5.1) и запуск бэкапа по cron.
tar: упаковка и сжатие
tar собирает каталог в один файл и при желании сразу сжимает его. Это стандарт для логов, конфигов и выгрузок сайта. Все ключи описаны в руководстве GNU tar, а основные такие:
# просто архив без сжатия tar -cvf archive.tar /path/to/directory # архив со сжатием gzip tar -czvf archive.tar.gz /path/to/directory # распаковка (GNU tar сам определит сжатие) tar -xvf archive.tar.gz # распаковка в нужный каталог tar -xvf archive.tar.gz -C /path/to/dest
- -c создать архив, -x распаковать, -t показать содержимое без распаковки;
- -v показывать, что происходит, -f имя файла архива;
- -z gzip, -j bzip2, -J xz,
--zstdzstd; - -a выбрать сжатие по расширению: tar -caf archive.tar.xz каталог сожмёт архив через xz.
Какое сжатие выбрать: gzip, bzip2, xz или zstd
gzip быстрый и есть везде, поэтому для обмена файлами он по-прежнему вариант по умолчанию. bzip2 жмёт чуть лучше, но заметно медленнее. xz даёт самые маленькие архивы ценой времени и памяти, им пакуют исходники и образы. zstd сейчас самый удобный компромисс: жмёт примерно как gzip или лучше, а работает в разы быстрее, поэтому его любят для бэкапов. В GNU tar для него есть ключ --zstd, а распаковка через tar -xvf определяет формат сама.
tar --zstd -cvf archive.tar.zst /path/to/directory tar -xvf archive.tar.zst
gzip и bzip2 для одного файла
gzip и bzip2 сжимают один файл, а не каталог, и по умолчанию заменяют исходник сжатым. Чтобы оригинал остался, нужен ключ -k. Подробности в руководстве gzip.
gzip file.txt # получится file.txt.gz, file.txt исчезнет gzip -k file.txt # оригинал останется gunzip file.txt.gz bzip2 file.txt # file.txt.bz2 bunzip2 file.txt.bz2
zip и unzip для обмена с Windows и macOS
Если архив пойдёт человеку на Windows или macOS, проще отдать zip: он открывается там без дополнительных программ. Для каталога нужен ключ -r.
zip -r archive.zip /path/to/directory unzip archive.zip unzip archive.zip -d /path/to/dest
Архив с шифрованием через gpg
Если архив уходит по незащищённому каналу или лежит на чужом хранилище, его стоит сразу зашифровать. Ключ -c у gpg включает симметричное шифрование паролем, пароль спросят при запуске.
tar -czvf - /path/to/directory | gpg -c -o archive.tar.gz.gpg # расшифровать и распаковать gpg -d archive.tar.gz.gpg | tar -xzvf -
Простой скрипт бэкапа
Скрипт собирает архив с датой в имени и отправляет его на другой сервер по scp. Кавычки вокруг переменных защищают от сюрпризов с пробелами в путях, а set -e останавливает скрипт на первой ошибке, чтобы не отправить пустой архив.
#!/bin/bash set -e DIR="/path/to/directory" BACKUP_NAME="backup_$(date +%F).tar.gz" REMOTE_USER="username" REMOTE_HOST="example.com" REMOTE_DIR="/path/to/backup" tar -czf "$BACKUP_NAME" "$DIR" scp "$BACKUP_NAME" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR"
rsync для регулярной синхронизации
Когда нужен не разовый архив, а регулярная копия каталога, удобнее rsync: он передаёт только изменения, работает поверх SSH и умеет сжимать данные на лету. Все ключи есть в man rsync.
rsync -avz /path/to/directory/ user@remote:/path/to/backup/ # сначала посмотреть, что будет скопировано rsync -avzn /path/to/directory/ user@remote:/path/to/backup/
- -a архивный режим: права, владельцы, ссылки, структура каталогов;
- -v подробный вывод, -z сжатие при передаче, -n пробный прогон без изменений;
- слэш в конце исходного пути важен: с ним копируется содержимое каталога, без него сам каталог.
Бэкап по расписанию через cron
Чтобы скрипт запускался сам, его вешают на cron. Задания пользователя редактируются командой crontab -e. Вывод лучше писать в лог, иначе ошибка бэкапа пройдёт незамеченной.
# каждый день в 00:00 0 0 * * * /path/to/backup_script.sh >> /var/log/backup.log 2>&1
В итоге для упаковки хватает tar с gzip или zstd, zip нужен для обмена с Windows, gpg для защиты, rsync для регулярной синхронизации, а cron запускает всё это по расписанию. Этого набора хватает почти для всех задач с архивами на сервере и на рабочей машине.
Источники и ссылки
--zstd и автоматическое определение формата при распаковке.
GNU gzip manual
Как работают gzip и gunzip, ключ -k и уровни сжатия.
man rsync
Ключи rsync, синхронизация по SSH, пробный прогон и правила со слэшем.
rsync, официальный сайт
Версия 3.5.1 от 21 сентября 2026 года и список изменений.