Бэкап Linux сервера: rsync, Veeam Agent и стратегия 3-2-1

Linux 24 марта 2026 Автор: Евгений Семёнов
Бэкап Linux сервера: rsync, Veeam Agent и стратегия 3-2-1

Бэкап — это последний рубеж обороны вашей инфраструктуры. Когда всё остальное не помогло — взлом, ransomware, ошибка администратора, аппаратный сбой — именно резервная копия спасает бизнес от катастрофы. По статистике, 60% компаний, потерявших данные, закрываются в течение 6 месяцев. В этом руководстве — все инструменты и стратегии бэкапа Linux-серверов: от простого rsync до enterprise-решения Veeam.

Что такое стратегия 3-2-1 и почему она обязательна?

Правило 3-2-1 — золотой стандарт резервного копирования:

Зачем нужны все три уровня:

Бэкап, который не проверяли — не бэкап. Раз в квартал выполняйте тестовое восстановление на отдельный сервер. Вы удивитесь, как часто бэкапы оказываются неработоспособными.

Какие данные нужно бэкапить на Linux сервере?

Определите, что критично для восстановления работоспособности:

Что НЕ нужно бэкапить

Как настроить бэкап через rsync?

rsync — базовый инструмент синхронизации файлов. Быстрый, надёжный, встроен в каждый Linux:

# Простой бэкап на локальный диск
rsync -avz --delete /var/www/ /backup/www/

# Бэкап на удалённый сервер через SSH
rsync -avz --delete -e "ssh -p 22 -i ~/.ssh/backup_key" \
  /var/www/ backup@remote-server:/backup/web-server/www/

# Параметры:
# -a (archive) — сохраняет права, владельца, симлинки
# -v (verbose) — вывод процесса
# -z (compress) — сжатие при передаче
# --delete — удалять файлы на приёмнике, которых нет на источнике
Важная практика: Запускайте rsync с удалённого сервера, который забирает данные с бэкапируемого. Так даже при компрометации основного сервера злоумышленник не получит доступ к бэкап-серверу.

Инкрементальные бэкапы через rsync + hardlinks

#!/bin/bash
# Скрипт: incremental-backup.sh
DATE=$(date +%Y-%m-%d)
LATEST="/backup/latest"
DEST="/backup/$DATE"
SRC="/var/www/"

rsync -avz --delete --link-dest=$LATEST $SRC $DEST
rm -f $LATEST
ln -s $DEST $LATEST

# Удаление бэкапов старше 30 дней
find /backup/ -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;

Благодаря --link-dest неизменённые файлы создаются как жёсткие ссылки (hardlinks) и не занимают дополнительного места.

Как использовать Veeam Agent for Linux для полного бэкапа?

Veeam Agent for Linux — enterprise-решение для полного бэкапа физических и виртуальных серверов. Бесплатная версия покрывает базовые сценарии:

# Установка Veeam Agent for Linux
wget https://download2.veeam.com/veeam-release-deb_1.0_amd64.deb
dpkg -i veeam-release-deb_1.0_amd64.deb
apt update
apt install -y veeam

# Настройка через CLI
veeamconfig repository create --name "Local Backup" \
  --location /backup/veeam

# Создание задания бэкапа
veeamconfig job create --name "Full System" \
  --repoName "Local Backup" \
  --backupallsystem

# Запуск бэкапа
veeamconfig job start --name "Full System"

# Расписание: каждый день в 02:00
veeamconfig schedule set --jobname "Full System" \
  --at 02:00 --daily

Преимущества Veeam перед rsync

Как настроить бэкап через Borg Backup?

Borg — мощный инструмент с дедупликацией и шифрованием. Идеален для экономии места при бэкапе на удалённый сервер:

# Установка
apt install -y borgbackup

# Инициализация репозитория (с шифрованием)
borg init --encryption=repokey ssh://backup@remote-server/backup/borg-repo

# Создание бэкапа
borg create --stats --progress \
  ssh://backup@remote-server/backup/borg-repo::{hostname}-{now} \
  /etc /var/www /home /var/lib/postgresql \
  --exclude '/var/cache' --exclude '*.tmp'

# Просмотр архивов
borg list ssh://backup@remote-server/backup/borg-repo

# Удаление старых архивов (оставить 7 daily, 4 weekly, 6 monthly)
borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=6 \
  ssh://backup@remote-server/backup/borg-repo

# Восстановление файла
borg extract ssh://backup@remote-server/backup/borg-repo::latest \
  var/www/site/config.php

Borg обеспечивает дедупликацию на уровне блоков: если файл изменился на 1%, сохраняется только изменённый блок. Это даёт колоссальную экономию места при ежедневных бэкапах.

Как бэкапить базы данных PostgreSQL и MySQL?

Бэкап БД — это не просто копирование файлов. Нужен консистентный дамп:

# PostgreSQL
pg_dump -U postgres -Fc mydb > /backup/db/mydb_$(date +%Y%m%d).dump
pg_dumpall -U postgres > /backup/db/all_dbs_$(date +%Y%m%d).sql

# Восстановление
pg_restore -U postgres -d mydb /backup/db/mydb_20260324.dump

# MySQL/MariaDB
mysqldump -u root -p --all-databases --single-transaction \
  > /backup/db/all_dbs_$(date +%Y%m%d).sql

# Восстановление
mysql -u root -p < /backup/db/all_dbs_20260324.sql
Важно: Файловый бэкап каталога /var/lib/postgresql/ без остановки PostgreSQL может дать неконсистентную копию. Всегда используйте pg_dump или pg_basebackup для горячего бэкапа.

Как бэкапить Docker-контейнеры и volumes?

# Бэкап именованного volume
docker run --rm -v myvolume:/data -v /backup:/backup \
  alpine tar czf /backup/myvolume_$(date +%Y%m%d).tar.gz -C /data .

# Бэкап docker-compose.yml и .env
cp docker-compose.yml .env /backup/docker/

# Полный скрипт бэкапа Docker-стека
#!/bin/bash
BACKUP_DIR="/backup/docker/$(date +%Y%m%d)"
mkdir -p $BACKUP_DIR

# Останавливаем для консистентности (если допустимо)
docker compose stop

for vol in $(docker volume ls -q); do
  docker run --rm -v $vol:/data -v $BACKUP_DIR:/backup \
    alpine tar czf /backup/${vol}.tar.gz -C /data .
done

docker compose start
cp docker-compose.yml $BACKUP_DIR/

Как автоматизировать бэкапы через cron и systemd?

# Cron: ежедневный бэкап в 02:00
echo "0 2 * * * root /opt/scripts/backup.sh >> /var/log/backup.log 2>&1" \
  > /etc/cron.d/daily-backup

# Systemd timer (предпочтительно)
# /etc/systemd/system/backup.service
[Unit]
Description=Daily Backup
After=network.target

[Service]
Type=oneshot
ExecStart=/opt/scripts/backup.sh
StandardOutput=journal
StandardError=journal

# /etc/systemd/system/backup.timer
[Unit]
Description=Run backup daily at 02:00

[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true

[Install]
WantedBy=timers.target

# Активация
systemctl enable --now backup.timer

Мониторинг бэкапов

Бэкап без мониторинга — это бэкап Шрёдингера: вы не знаете, работает он или нет, пока не попытаетесь восстановиться. Решения:

Как восстановить Linux сервер из бэкапа?

Сценарии восстановления:

Восстановление файлов (rsync, borg)

# rsync: просто скопируйте обратно
rsync -avz /backup/latest/etc/ /etc/

# borg: извлечение конкретных файлов
borg extract backup-repo::2026-03-24 etc/nginx/

Bare-metal восстановление (Veeam)

  1. Загрузитесь с Veeam Recovery Media (ISO)
  2. Укажите расположение бэкапа (локальный диск, NFS, Veeam repo)
  3. Выберите точку восстановления
  4. Восстановите на тот же или новый диск

Как настроить бэкап в облачное хранилище (S3)?

# restic — отличный инструмент для облачных бэкапов
apt install -y restic

# Инициализация репозитория в S3
export AWS_ACCESS_KEY_ID="your_key"
export AWS_SECRET_ACCESS_KEY="your_secret"
restic -r s3:s3.amazonaws.com/my-backup-bucket init

# Создание бэкапа
restic -r s3:s3.amazonaws.com/my-backup-bucket backup \
  /etc /var/www /home \
  --exclude-file=/opt/scripts/backup-exclude.txt

# Автоочистка (7 daily, 4 weekly, 12 monthly)
restic -r s3:s3.amazonaws.com/my-backup-bucket forget \
  --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune

# Восстановление
restic -r s3:s3.amazonaws.com/my-backup-bucket restore latest \
  --target /restore/ --include /var/www/

restic поддерживает S3-совместимые хранилища: Yandex Object Storage, Selectel, MinIO, Backblaze B2.

Заключение: бэкап — это страховка, которая окупается в первый же инцидент

Настройка бэкапов — не самая увлекательная задача, но одна из самых важных. Начните с rsync для файлов и pg_dump для баз данных, настройте cron, добавьте мониторинг. Когда инфраструктура вырастет — переходите на Borg или Veeam для дедупликации и bare-metal восстановления. И главное: следуйте правилу 3-2-1 и регулярно проверяйте восстановление. Бэкап, который не проверяли — не существует. А если нужна помощь с проектированием системы резервного копирования — обращайтесь в АйТи Фреш.

Инструменты: Veeam Agent for Linux, Borg Backup, restic

Часто задаваемые вопросы

Чем rsync лучше или хуже Veeam для бэкапа?

rsync — файловый бэкап, быстрый и простой, но не позволяет восстановить сервер целиком (bare-metal). Veeam делает полный образ диска с загрузчиком и позволяет восстановить сервер на голое железо за 15-30 минут. Для критичных серверов рекомендуется Veeam + rsync для отдельных данных.

Сколько места нужно для хранения бэкапов?

Правило: 2-3x от объёма данных для полного бэкапа с историей. При использовании дедупликации (Borg, Veeam, restic) — 1.2-1.5x. Для сервера с 100 ГБ данных заложите 200-300 ГБ для бэкапов с 30 точками восстановления.

Как правильно бэкапить базу данных PostgreSQL?

Используйте pg_dump для логического дампа или pg_basebackup для физического. Никогда не копируйте файлы /var/lib/postgresql/ при работающей БД — это даст неконсистентную копию. Для больших баз используйте pg_dump с форматом -Fc (custom) для сжатия и параллельного восстановления.

Как защитить бэкапы от шифровальщиков (ransomware)?

Храните бэкапы на отдельном сервере, к которому основной сервер не имеет прямого доступа. Используйте pull-модель: бэкап-сервер сам забирает данные. Включите immutable storage (S3 Object Lock) для облачных бэкапов. Держите одну offline-копию.

Что такое pull-модель бэкапа и почему она безопаснее?

В pull-модели бэкап-сервер подключается к основному серверу и забирает данные. Основной сервер не знает о бэкап-сервере и не имеет к нему доступа. Если основной сервер скомпрометирован — злоумышленник не сможет удалить или зашифровать бэкапы.

Как часто нужно проверять восстановление из бэкапа?

Минимум раз в квартал выполняйте тестовое восстановление на отдельный сервер. Автоматизируйте: скрипт разворачивает бэкап в тестовую VM, проверяет работу сервисов и отправляет отчёт. Без проверки вы не знаете, работают ли ваши бэкапы.

Нужна помощь специалистов?

ООО «АйТи Фреш» возьмёт это на себя

Не хватает времени или своих специалистов — мы настроим, оптимизируем и возьмём вашу IT-инфраструктуру на постоянное сопровождение. Работаем с юридическими лицами в Москве и регионах. Собственный дата-центр, команда из 8 серверов Dell Xeon Platinum 8280 на базе МТС.

15+лет опыта
25+клиентов
40Gсвоя сеть
24/7поддержка