restic — популярная программа резервного копирования с шифрованием и дедупликацией. GeoData Cove поддерживает её через S3-совместимый API.
1. Создайте бакет и ключ
В веб-версии откройте «Команда → Хранилище S3 → Создать бакет». Выберите основной регион и регион реплики, при необходимости включите неизменяемость копий. Затем на вкладке «Ключи доступа» создайте ключ с правами только на этот бакет. Адрес точки доступа для выбранного региона показан там же.
2. Задайте переменные окружения
export AWS_ACCESS_KEY_ID="идентификатор ключа"
export AWS_SECRET_ACCESS_KEY="секретная часть ключа"
export RESTIC_REPOSITORY="s3:https://адрес-точки-доступа/имя-бакета"
export RESTIC_PASSWORD_FILE="/root/.restic-pass"
Пароль репозитория храните отдельно от сервера: без него восстановить данные невозможно.
3. Инициализируйте репозиторий и сделайте первую копию
restic init
restic backup /etc /var/www /var/backups/db --exclude-caches
4. Добавьте расписание
Например, через systemd-таймер или cron — каждую ночь в 03:00:
0 3 * * * . /root/.restic-env && restic backup /etc /var/www /var/backups/db --quiet
5. Настройте хранение копий
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
Если для бакета включена неизменяемость, команда forget не удалит копии моложе заданного срока — это ожидаемое поведение, а не ошибка.
6. Проверяйте восстановление
Раз в месяц восстанавливайте случайную копию на тестовую машину и проверяйте целостность репозитория:
restic check --read-data-subset=5%
restic restore latest --target /tmp/restore-test
В разделе «Резервные копии» можно включить уведомление, если в бакет не поступало новых данных дольше суток.