Подробный гайд: Резервное копирование файлов по сети в ALT Linux

Сетевой бэкап в ALT Linux: настройка rsync, SSH, Borg, UrBackup. Пошаговый гайд с примерами скриптов и конфигами.

2026.04.20                  


Подробный гайд: Резервное копирование файлов по сети в ALT LinuxПодробный гайд: Резервное копирование файлов по сети в ALT Linux Вот подробное руководство по организации сетевого резервного копирования в вашей системе на базе ALT Linux.


Основные инструменты для сетевого бэкапа

Инструмент Тип Преимущества Сложность
rsync Утилита командной строки Быстрая синхронизация, дельта-копирование, работа по SSH Низкая
BorgBackup Современный бэкап-инструмент Дедупликация, шифрование, сжатие Средняя
UrBackup Клиент-серверная система Веб-интерфейс, инкрементные бэкапы, поддержка Windows Средняя
Bacula Корпоративное решение Масштабируемость, планирование, централизованное управление Высокая
NFS / SMB Сетевые файловые системы Прозрачный доступ к удалённому хранилищу Средняя

Вариант 1: Rsync + SSH (наиболее универсальный)

На стороне сервера (хранилище бэкапов)

1. Установите rsync:

sudo apt-get install rsync

2. Создайте пользователя для бэкапов:

sudo useradd -m -s /bin/bash backupuser
sudo passwd backupuser
sudo mkdir -p /backup
sudo chown backupuser:backupuser /backup

3. Настройте SSH-ключи (опционально, но рекомендуется для автоматизации):

# На клиенте:
ssh-keygen -t ed25519 -f ~/.ssh/backup_key
ssh-copy-id -i ~/.ssh/backup_key.pub backupuser@сервер-бэкапа

На стороне клиента (источник данных)

Простое копирование по сети:

rsync -avz --progress -e "ssh -i ~/.ssh/backup_key" \
  /home/user/important_data/ \
  backupuser@192.168.1.100:/backup/client1/

Ключевые параметры:

  • -a — архивный режим (сохраняет права, даты, символические ссылки)
  • -v — подробный вывод
  • -z — сжатие при передаче
  • --delete — удалять на целевой стороне файлы, удалённые на источнике
  • --exclude='*.tmp' — исключать файлы по шаблону

Пример скрипта для автоматизации (/usr/local/bin/backup-rsync.sh):

#!/bin/bash
LOGFILE="/var/log/backup-rsync.log"
DATE=$(date +%Y-%m-%d_%H-%M)
SOURCE="/home/user/data"
DEST="backupuser@192.168.1.100:/backup/client1"

echo "[$DATE] Начало резервного копирования" >> $LOGFILE

rsync -avz --delete --exclude='*.tmp' --exclude='cache/' \
  -e "ssh -i /root/.ssh/backup_key" \
  "$SOURCE/" "$DEST/" >> $LOGFILE 2>&1

if [ $? -eq 0 ]; then
    echo "[$DATE] Успешно завершено" >> $LOGFILE
else
    echo "[$DATE] ОШИБКА!" >> $LOGFILE
    # Можно добавить отправку уведомления
fi

Добавьте в cron для ежедневного выполнения:

crontab -e
# Ежедневно в 2:00
0 2 * * * /usr/local/bin/backup-rsync.sh

Вариант 2: Rsync-демон (для централизованного хранилища)

Настройка сервера

1. Установите rsync-server:

sudo apt-get install rsync-server

2. Настройте /etc/rsyncd.conf:

# Глобальные настройки
transfer logging = yes
log file = /var/log/rsyncd/rsyncd.log
log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes
max connections = 10
uid = rsyncd
gid = rsyncd

# Модуль для бэкапов
[backups]
    path = /backup/incoming
    comment = Directory for client backups
    list = true
    read only = false
    auth users = backup_client
    secrets file = /etc/rsyncd.secrets
    hosts allow = 192.168.1.0/24

3. Создайте файл с паролями (/etc/rsyncd.secrets):

backup_client:StrongPassword123!
sudo chmod 600 /etc/rsyncd.secrets
sudo chown root:root /etc/rsyncd.secrets

4. Создайте обязательный файл для systemd:

sudo touch /etc/sysconfig/rsyncd

5. Запустите сервис:

sudo systemctl enable --now rsyncd.socket
sudo systemctl status rsyncd.socket

Подключение клиента

# Синхронизация с парольной аутентификацией
rsync -avz /home/user/data/ \
  --password-file=/etc/rsync-client.pass \
  rsync://backup_client@192.168.1.100/backups/client1/

Файл /etc/rsync-client.pass должен содержать только пароль и иметь права 600.


Вариант 3: UrBackup (клиент-сервер с веб-интерфейсом)

Установка сервера

# Установка сервера
sudo apt-get install urbackup-server

# Создание директории для бэкапов
sudo mkdir -p /mnt/backups
sudo chown -R urbackup:urbackup /mnt/backups

# Запуск сервиса
sudo systemctl enable --now urbackup-server

Веб-интерфейс будет доступен по адресу: http://<IP-сервера>:55414

Установка клиента

sudo apt-get install urbackup-client
sudo systemctl enable --now urbackup-client

Клиенты обнаруживаются сервером автоматически. Настройка резервных копий осуществляется через веб-интерфейс: вкладка «Настройки» -> «Файловые бэкапы», где можно указать каталоги для копирования (разделяются точкой с запятой).

Управление через CLI на клиенте

# Запустить бэкап
urbackupclientctl start

# Проверить статус
urbackupclientctl status

# Просмотреть доступные бэкапы
urbackupclientctl browse

# Добавить каталог для бэкапа
urbackupclientctl add-backupdir -d /home/user/documents

Вариант 4: BorgBackup (с шифрованием и дедупликацией)

Установка

sudo apt-get install borgbackup

Инициализация репозитория на сервере

# На сервере:
borg init --encryption=repokey /backup/borg-repo

Создание бэкапа с клиента

export BORG_PASSPHRASE='your_secure_passphrase'

borg create --stats --compression lz4 \
  backupuser@192.168.1.100:/backup/borg-repo::'{hostname}-{now}' \
  /home/user/data \
  --exclude '*.tmp' \
  --exclude '/home/user/data/cache'

Автоматизация + ротация старых бэкапов

#!/bin/bash
export BORG_PASSPHRASE='your_secure_passphrase'
REPO="backupuser@192.168.1.100:/backup/borg-repo"

# Создание бэкапа
borg create --stats --compression lz4 \
  "$REPO::{hostname}-{now:%Y-%m-%d_%H-%M}" \
  /home/user/data

# Удаление старых бэкапов (хранить 7 ежедневных, 4 недельных, 6 месячных)
borg prune --keep-daily=7 --keep-weekly=4 --keep-monthly=6 "$REPO"

# Проверка целостности (раз в неделю)
borg check "$REPO"

Вариант 5: Сетевое хранилище через NFS или SMB

Настройка NFS-сервера

1. Установка:

sudo apt-get install nfs-server

2. Настройка экспорта (/etc/exports):

/backup 192.168.1.0/24(rw,sync,no_subtree_check,no_root_squash)

3. Применение настроек:

sudo exportfs -ra
sudo systemctl enable --now nfs-server

Подключение NFS-клиента

# Установка клиента
sudo apt-get install nfs-client

# Монтирование
sudo mkdir -p /mnt/backup
sudo mount -t nfs 192.168.1.100:/backup /mnt/backup

# Для автоматического монтирования добавьте в /etc/fstab:
192.168.1.100:/backup /mnt/backup nfs defaults,_netdev 0 0

После монтирования можно использовать стандартные инструменты (rsync, tar, cp) для копирования в /mnt/backup.


Сравнительная таблица выбора решения

Критерий rsync+SSH rsync-daemon UrBackup Borg NFS/SMB
Шифрование Да (SSH) Нет По HTTPS Да (встроенное) Нет
Дедупликация Нет Нет Да Да Нет
Веб-интерфейс Нет Нет Да Нет Нет
Инкрементные бэкапы С --link-dest С --link-dest Да Да Нет
Кроссплатформенность Да Да Да Через SSH Да
Сложность настройки Низкая Средняя Средняя Средняя Низкая
Подходит для Малый офис, личный ПК Централизованное хранилище Смешанная среда Критичные данные с шифрованием Простое сетевое хранилище

Рекомендации по безопасности

  1. Используйте SSH-ключи вместо паролей для rsync и Borg
  2. Ограничьте доступ по IP в rsyncd.conf (hosts allow) и файрволе
  3. Шифруйте чувствительные данные с помощью Borg или encfs перед передачей
  4. Регулярно проверяйте целостность бэкапов (borg check, тестовое восстановление)
  5. Храните копию ключей шифрования отдельно от самих бэкапов
  6. Настройте мониторинг (логи, уведомления о сбоях)

Полезные команды для диагностики

# Проверка доступности порта rsync
nc -zv 192.168.1.100 873

# Тестовая синхронизация без изменений (dry-run)
rsync -avn --delete /source/ user@host:/dest/

# Просмотр доступных модулей rsync-демона
rsync rsync://192.168.1.100/

# Проверка статуса UrBackup
urbackupclientctl status

# Список архивов Borg
borg list backupuser@host:/backup/borg-repo

# Проверка монтирования NFS
showmount -e 192.168.1.100

Совет:

  • Для начала рекомендую начать с rsync + SSH — это наиболее гибкое и безопасное решение с минимальными требованиями к настройке. По мере роста потребностей можно перейти на UrBackup (для удобства) или Borg (для экономии места и шифрования).