Резервные копии с restic: минимальная схема
Шифрованные инкрементальные бэкапы в S3-совместимое хранилище за полчаса.
restic хорош тем, что шифрует данные на стороне клиента, хранит их с дедупликацией и работает с любым S3-совместимым хранилищем. Ниже — схема, которой хватает для небольшого сервера.
Переменные окружения
# /etc/restic/env (права 600)
RESTIC_REPOSITORY=s3:https://s3.example.net/backups/server1
RESTIC_PASSWORD_FILE=/etc/restic/password
AWS_ACCESS_KEY_ID=...
AWS_SECRET_ACCESS_KEY=...
Пароль репозитория лучше хранить ещё и вне сервера: без него восстановить копии невозможно.
Инициализация и первая копия
set -a; . /etc/restic/env; set +a
restic init
restic backup /etc /srv --exclude-caches
restic snapshots
Хранение
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
Команду удобно запускать тем же таймером, что и бэкап, но реже — раз в неделю: prune перечитывает репозиторий и может занимать заметное время.
Проверка
Копия, которую ни разу не восстанавливали, — это надежда, а не копия. Раз в месяц полезно выполнить restic check --read-data-subset=5% и восстановить пару файлов в отдельный каталог:
restic restore latest --target /tmp/restore-test --include /etc/hostname