Подробный гайд: Резервное копирование файлов по сети в 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 | Да |
| Сложность настройки | Низкая | Средняя | Средняя | Средняя | Низкая |
| Подходит для | Малый офис, личный ПК | Централизованное хранилище | Смешанная среда | Критичные данные с шифрованием | Простое сетевое хранилище |
Рекомендации по безопасности
- Используйте SSH-ключи вместо паролей для rsync и Borg
- Ограничьте доступ по IP в
rsyncd.conf(hosts allow) и файрволе - Шифруйте чувствительные данные с помощью Borg или encfs перед передачей
- Регулярно проверяйте целостность бэкапов (
borg check, тестовое восстановление) - Храните копию ключей шифрования отдельно от самих бэкапов
- Настройте мониторинг (логи, уведомления о сбоях)
Полезные команды для диагностики
# Проверка доступности порта 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 (для экономии места и шифрования).