Бэкап дома: borg, restic или duplicity, что выбрать
Систему Arch можно переставить за час, а вот домашний каталог: документы, фото, dotfiles и проекты не восстановит ни один pacman. Для копирования /home есть три зрелых инструмента с дедупликацией и шифрованием: borg, restic и duplicity. Разберём, чем они отличаются, как запускать их по расписанию и какой выбрать под твою схему.
Почему копировать именно /home, а не всю систему?
Система: это набор пакетов. Сломался диск: поставил Arch заново, накатил список пакетов и получил ту же систему. Данные в /home так не воссоздаются. Фотографии за десять лет, черновики, исходники проектов, ssh-ключи, конфиги редактора: всё это существует в единственном экземпляре. Потеря диска без копии /home означает потерю лет работы.
При этом /home меняется постоянно: файлы добавляются, правятся, удаляются. Полная копия каждый раз: это терабайты. Поэтому для дома нужен инструмент с дедупликацией: он хранит каждый кусок данных один раз, а повторные бэкапы занимают только место изменений. rsync-схема с --link-dest тоже умеет инкремент, но без шифрования и без встроенной ротации о ней подробно в статье Резервное копирование Arch: rsync-схема с инкрементом. Здесь: специализированные тулы.
BorgBackup: что даёт дедупликация и сжатие?
BorgBackup: самый «тяжёлый» из тройки: дедупликация на уровне чанков, сжатие (lz4, zstd, lzma), шифрование AES-256 и инкрементность в одном туле. Репозиторий живёт локально или на ssh-хосте, а каждая команда делает ровно одно дело.
Инициализация репозитория:
borg init --encryption=repokey-blake2 /mnt/backup/borg-home
Флаг --encryption=repokey-blake2 хранит ключ в самом репозитории и защищает его паролем. Первый бэкап:
borg create --stats --compression zstd /mnt/backup/borg-home::home-{now} /home
Имя архива home-{now} подставляет текущую дату. Повторный запуск докачает только изменённые чанки: дедупликация работает между всеми архивами репозитория, поэтому десять бэкапов занимают место одного плюс изменения.
Ротация: borg prune:
borg prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6 /mnt/backup/borg-home
Правило читается так: семь ежедневных, четыре еженедельных, шесть месячных архивов. Старые удаляются сами.
По ssh репозиторий указывается как user@host:/path: borg работает поверх ssh без дополнительных настроек. Минус: borg требует одинаковую версию на клиенте и сервере, а первый бэкап большого /home заметно грузит процессор из-за чанкинга.
Restic: почему он лучший для облака?
Restic: тот же дедуп и снапшоты, но с упором на облако. Из коробки поддерживаются S3, Backblaze B2, Azure, Google Cloud Storage, а через rclone: вообще любой бэкенд, включая Dropbox и Яндекс.Диск. Команды короче, а скорость выше: restic быстрее borg на больших каталогах.
restic init --repo s3:s3.amazonaws.com/bucket-name
restic backup --repo s3:s3.amazonaws.com/bucket-name /home
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 \
--prune --repo s3:s3.amazonaws.com/bucket-name
restic forget с --prune удаляет старые снапшоты и заодно чистит осиротевшие данные. Список снапшотов: restic snapshots, восстановление одного файла: restic restore с флагом --path.
Пароль от репозитория restic держит в переменной окружения RESTIC_PASSWORD, а адрес репозитория в RESTIC_REPOSITORY. Для локального диска репозиторий просто путь: restic init --repo /mnt/backup/restic-home.
Duplicity: когда уместны tar-архивы с GPG?
Duplicity: старейшина тройки. Он не хранит чанки, а делает инкрементные tar-архивы и шифрует их GPG-ключом. Логика простая: полный бэкап: один архив, дальше только изменения, а восстановление склеивает цепочку.
duplicity /home file:///mnt/backup/duplicity-home
duplicity --encrypt-key 0xABCDEF12 /home s3://bucket/backup
duplicity restore file:///mnt/backup/duplicity-home /home/restore
Шифрование по умолчанию: твоим GPG-ключом, поэтому расшифровать архив сможет только владелец ключа. Облачные хранилища поддерживаются: S3, Backblaze, а для Dropbox и прочих есть обёртка duply, которая добавляет конфиг и расписание.
Когда duplicity уместен: у тебя уже настроен GPG, бэкап нужен «по-старинке» на внешний диск, а скорость не критична. Минусы: медленнее borg и restic на больших объёмах, а восстановление из глубокой цепочки инкрементов занимает заметное время.
Сравнение: какой инструмент подходит тебе?
| Критерий | Borg | Restic | Duplicity |
|---|---|---|---|
| Дедупликация | чанки | чанки | нет, инкремент tar |
| Шифрование | AES-256, встроенное | AES-256, встроенное | GPG |
| Облачные бэкенды | ssh, локально | S3, B2, rclone и др. | S3, B2, duply |
| Скорость | средняя | высокая | низкая |
| Кривая обучения | средняя | низкая | низкая |
| Ротация | borg prune | restic forget | duply, вручную |
Простая формула выбора:
- Новичок, хочешь облако или внешний диск: restic. Команды короткие, документация понятная, бэкендов больше всех.
- Продвинутый, есть свой ssh-хост или NAS: borg. Максимальное сжатие, зрелая ротация, один тул на всё.
- Консерватор с GPG: duplicity. Работает там, где уже настроены ключи, и не требует новых паролей.
Все три ставятся из официальных репозиториев: pacman -S borg restic duplicity.
Куда складывать копию и как автоматизировать?
Куда складывать копию:
- Внешний диск просто и быстро, но не спасает от пожара и кражи.
- ssh-хост или NAS: офсайт-копия, лучший вариант для borg.
- Облако для restic и duplicity; S3 или B2 стоят копейки за гигабайт.
Автоматизация: systemd-таймер. Скрипт:
#!/bin/bash
# /usr/local/bin/backup-home.sh
set -e
export RESTIC_REPOSITORY=/mnt/backup/restic-home
export RESTIC_PASSWORD="$(cat /etc/restic-pass)"
restic backup /home --exclude /home/*/.cache
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
Таймер:
# /etc/systemd/system/backup-home.service
[Unit]
Description=Restic backup of /home
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup-home.sh
# /etc/systemd/system/backup-home.timer
[Unit]
Description=Daily home backup
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
Включение:
sudo systemctl enable --now backup-home.timer
Persistent=true догоняет пропущенные запуски после выключенного компьютера. Исключай кэши: /home/*/.cache и каталоги браузеров раздувают бэкап без пользы. Перед обновлением системы отдельная лёгкая копия /etc и списков пакетов всё равно нужна, как собрать её за минуту, описано в статье про резервное копирование перед обновлением.
Частые вопросы
Чем это лучше rsync-схемы?
rsync-схема даёт зеркало, в которое можно зайти файловым менеджером, но без шифрования и без встроенной ротации. borg, restic и duplicity шифруют данные и хранят историю версий: можно откатить файл к состоянию недельной давности. Для /home с его постоянными правками история важнее зеркала. Если нужен именно зеркальный доступ, rsync-схема остаётся рабочим вариантом.
Нужен ли полный бэкап перед первым запуском?
Нет. Первый запуск borg create или restic backup сам делает полную копию, дальше только изменения. Отдельный полный бэкап нужен разве что перед обновлением системы, и то это лёгкая копия /etc и списков пакетов.
Как проверить, что бэкап рабочий?
borg check проверяет целостность репозитория, restic check, то же для снапшотов. Раз в месяц делай реальное восстановление: вытащи из архива каталог и открой пару файлов. Бэкап, который ни разу не восстанавливали, скорее всего, сломан.
Что исключать из бэкапа /home?
Кэши (/home/*/.cache, ~/.local/share/Trash), каталоги браузеров, виртуальные машины и большие скачанные образы, их проще скачать заново. Оставляй документы, фото, dotfiles, проекты и ssh-ключи.
Полезные ресурсы
- Borg backup (ArchWiki): установка, настройка и примеры команд.
- Restic (ArchWiki): бэкенды, снапшоты и восстановление.
Заключение
Для копирования /home borg, restic и duplicity решают одну задачу: дедуплицированная история с шифрованием, но разными путями. Restic проще всех и дружит с любым облаком, borg даёт максимум сжатия на своём ssh-хосте, duplicity встраивается в существующую GPG-инфраструктуру. Ставь любой из трёх, настрой systemd-таймер, исключи кэши и раз в месяц проверяй восстановление, и домашний каталог перестанет быть точкой отказа.
Не получилось? Поможем настроить
Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Комментарии