Бэкапы Nextcloud по правилу 3-2-1
Своё облако делает вас единственным ответственным за данные. Никакая служба поддержки не вернёт случайно удалённый каталог и не восстановит умерший диск. RAID тоже не заменяет резервную копию: он переживёт отказ диска, но послушно повторит ошибочное удаление или работу шифровальщика.
Правило 3-2-1
Держите три копии данных на двух разных типах носителей, причём одну из них вне дома. Основная копия находится на сервере, вторая — на внешнем диске, третья — в удалённом хранилище или у родственников.
Что входит в резервную копию
Полная копия Nextcloud состоит из четырёх частей:
- Каталог данных — файлы пользователей.
- База данных — общий доступ, метаданные, календари и контакты.
- Каталог config — в
config.phpхранятся секреты, без которых данные шифрования и настройки не восстановить. - Каталог themes и сторонние приложения — если вы их меняли.
Чтобы копия была согласованной, на время создания снимка переводите систему в режим обслуживания:
sudo -u www-data php occ maintenance:mode --on
pg_dump -U nextcloud -Fc nextcloud > /backup/nextcloud.dump
restic backup /var/www/nextcloud/config /srv/nextcloud-data /backup/nextcloud.dump
sudo -u www-data php occ maintenance:mode --off
В Docker те же команды выполняются через docker compose exec. Если остановка на время копирования неудобна, снимите снимок файловой системы средствами LVM или ZFS: тогда простой составит считаные секунды.
Почему restic
Restic шифрует данные на стороне клиента, хранит изменения блоками и умеет работать с локальным диском, SFTP и S3-совместимыми хранилищами. Поэтому копию можно смело отправлять чужому провайдеру. Пароль от репозитория храните отдельно от сервера: без него архив бесполезен. Срок хранения настраивается командой restic forget --prune, например семь ежедневных, четыре еженедельных и шесть ежемесячных снимков.
Проверка восстановления
Резервная копия, которую ни разу не восстанавливали, — лишь предположение. Раз в несколько месяцев поднимайте тестовую копию на отдельной машине или в виртуалке: восстановите файлы и базу, запустите Nextcloud и откройте несколько документов. Команда restic check проверит целостность репозитория, но только полное восстановление покажет, что вы не забыли важный файл и помните порядок действий.
Запишите этот порядок в короткую инструкцию и храните её вне сервера. В день настоящей аварии вы скажете себе спасибо.