Расписание
- Ежедневно 03:30 — dump PostgreSQL (nextcloud, messenger, ns-account, assistant), SQLite Academy, конфиги Traefik/stack.
- Ежедневно 05:00 UTC — offsite rsync: /srv/backups → /mnt/nsforge-offsite/nsforge-backups (без --delete).
- Еженедельно (воскресенье) — полный архив nextcloud-data и archive-data на /srv/backups.
- Воскресенье 04:20 — docker-gc (неиспользуемые образы/кэш).
Пути на сервере
- /srv/stack/backups/backup-all.sh — основной скрипт локальных бэкапов.
- /srv/stack/backups/offsite-sync.sh — rsync на offsite HDD (ALLOW_DELETE=0).
- /srv/stack/backups/backup-status.sh — проверка свежести бэкапов.
- /srv/backups/ — HDD локальных бэкапов (retention по политике).
- /mnt/nsforge-offsite/nsforge-backups/ — offsite retention (может быть заполнен сильнее локального).
Три диска в админке
SSD · система (/), HDD · локальные бэкапы (/srv/backups) и HDD · offsite retention (/mnt/nsforge-offsite) — три независимых накопителя, не RAID1.
Разный процент заполнения (например 38% vs 67%) — retention drift: offsite хранит старые копии, rsync --delete выключен.
Мониторинг
health-alert.sh (каждые 15 мин) шлёт алерт при сбое backup-status.
Uptime Kuma: монитор backup-status через push или HTTP-обёртку.
При <20% свободного места на SSD/HDD — Telegram-алерт (disk-space-alert.sh).
Восстановление — только с root-доступа к серверу. Перед restore остановите соответствующий сервис.