Как настроить сервер для резервных копий: rsync + borg + cron (без магии)

ГлавнаяКак настроить сервер для резервных копий: rsync + borg + cron (без магии)

Содержание

Если ты хоть раз терял данные — знаешь, это боль. И ладно бы какие-то временные файлы, но когда это база клиентов, документы, годовая отчётность или даже сайт, который висел в топе — всё, здравствуй, паника.

Я через это прошла. И в итоге пришла к простому, но надёжному решению: rsync + borg + cron. Всё работает на VPS, всё автоматизировано, и главное — понятно, что где лежит и как восстановить. Ниже расскажу, как я организовала бэкап-сервер на Ubuntu, чтобы не зависеть от «облачных решений» с платной кнопкой «восстановить».


Зачем всё это? И почему не просто ZIP?

Да, можно запаковать проект в архив и скинуть на флешку. Разок. Но если ты хочешь, чтобы всё бэкапилось каждый день/ночь/час — это не вариант. Тут нужна система. Я выбрала связку:

  • rsync — для быстрой и надёжной синхронизации;
  • borgbackup — для дедупликации и сжатия (чтобы не копировать одно и то же по сто раз);
  • cron — для автоматизации всего этого добра.

И да, всё это ставится за 30 минут даже на свежей Ubuntu 22.04.


Что такое rsync, и почему он тащит

rsync — это утилита для синхронизации файлов и папок, которая умеет копировать только изменённые части. Работает по SSH, локально или в режиме демона. Простая как гвоздь, быстрая как молния.

Я её использую, например, чтобы забрать с клиентского VPS

/var/www
и
/etc
каждый вечер на отдельный бэкап-сервер. И потом — пусть хоть клиент удалит всё, у меня копия есть.

Крутые вещи, которые может rsync:

  • инкрементальные копии;
  • работа через
    rsync over ssh
    (всё шифруется);
  • опции вроде
    --archive
    ,
    --delete
    ,
    --compress
    ,
    --progress
    ;
  • можно запускать как
    rsync daemon
    , если хочется постоянный канал.

Пример базового использования rsync (рабочий)

Скопировать каталог с одного сервера на другой:

rsync -avz -e "ssh -p 2222" user@remote:/var/www/ /backup/sites/

Что тут происходит:

  • -a
    — архивный режим (права, симлинки, владельцы);
  • -v
    — подробнее в консоль;
  • -z
    — сжатие;
  • -e
    — указываем, что через SSH и нестандартный порт.

Можно добавить

--delete
, чтобы удалённые на источнике файлы удалялись и на копии.


Настройка бэкап-сервера: как делаю я

📦 У меня на CloudVPS.by крутится отдельный VPS с 2 ядрами, 40 ГБ SSD и Ubuntu 22.04. На нём:

  • стоит rsync (понятно);
  • поднят SSH с ограничениями;
  • права на папки чётко заданы;
  • отдельный пользователь
    backup
    с ключами (никаких паролей!).

Создаю структуру:

mkdir -p /backup/sites chown backup:backup /backup/sites

Добавляю публичный ключ клиента в

~backup/.ssh/authorized_keys
— всё, он может кидать копии.


Borg: зачем он нужен и как помогает

rsync
— это синхронизация, но он не архивирует. Если нужно хранить копии по дням/неделям и не дублировать одно и то же — используем Borg.

Устанавливаем:

apt install borgbackup -y

Создаём репозиторий:

borg init --encryption=repokey /backup/borg/site1

Добавляем бэкап:

borg create --stats /backup/borg/site1::$(date +%F) /backup/sites/

Что круто:

  • каждое
    borg create
    — это как снепшот, но весит в разы меньше;
  • можно хранить 30, 100, 500 копий — и не бояться занять весь диск;
  • шифруется и локально, и при передаче.

Cron: чтобы всё само крутилось

Создаю скрипт

backup.sh
:

#!/bin/bash rsync -avz user@remote:/var/www/ /backup/sites/ borg create --stats /backup/borg/site1::$(date +%F) /backup/sites/ borg prune -v --keep-daily=7 --keep-weekly=4 --keep-monthly=3 /backup/borg/site1

И добавляю в cron:

crontab -e

Пример строки (ежедневно в 2:30 ночи):

30 2 * * * /root/backup.sh >> /var/log/backup.log 2>&1

Что получилось в итоге

  • Файлы клиента копируются каждый день;
  • У меня есть версии за вчера, неделю назад и даже месяц;
  • Всё сжато, зашифровано и лежит на отдельном VPS от CloudVPS.by;
  • Не нужен Google Drive, rsync работает напрямую, быстро и без заморочек.

Настроить резервное копирование с помощью rsync, borg и cron — проще, чем кажется. Главное — один раз понять, как это работает, и вы уже никогда не останетесь без бэкапов. А с VPS от CloudVPS.by всё разворачивается быстро, стабильно, и не надо переплачивать за гигабайты в чужих облаках.

👉 Надоело бояться потерять данные? Разверни свой rsync-сервер — и спи спокойно.

Ценим тех, кто надолго

При оплате на год мы добавим ещё месяц.

Месяц в подарок
COPIED
NEWCOMM COPIED