11 KiB
TrueNAS — rclone backup
Контейнер
- Image:
rclone/rclone:latest - Имя:
rclone - Запуск: cron внутри контейнера (
crond -f)
Маппинги
| Host | Контейнер |
|---|---|
/mnt/RED_2TB/docker/rclone/config |
/config/rclone |
/mnt/RED_2TB |
/data |
Расписание
0 3 * * 0 # каждое воскресенье в 03:00
Скрипт: /config/rclone/backup.sh
Что бэкапится
| Метка | Источник (host) | Назначение | Шифрование |
|---|---|---|---|
| Photos | /mnt/RED_2TB/Photos |
mailru:Photos/Photos |
нет |
| old-bu | /mnt/RED_2TB/old-bu |
mailru:Photos/old-bu |
нет |
| immich | /mnt/RED_2TB/immich-photos-upload |
mailru:Photos/immich |
нет |
| docker | /mnt/RED_2TB/docker |
mailru-crypt: |
✅ да |
| backup | /mnt/RED_2TB/backup |
mailru-crypt: |
✅ да |
| t610 | /mnt/RED_2TB/backup/t610 — входит в backup автоматически |
mailru-crypt: |
✅ да |
| kraken | /mnt/RED_2TB/backup/kraken — входит в backup автоматически (с 2026-09-20) |
mailru-crypt: |
✅ да |
📌 Бэкап конфигов t610 (HA OS) кладётся в
/mnt/RED_2TB/backup/t610/(ZFS-датасет, владелецnas:nas). Так как он лежит внутри/mnt/RED_2TB/backup, он уезжает в Mail.ru автоматически — правок вbackup.shне требуется. Схема целиком —[[family/plans/t610-backup-to-truenas]].
📌 Следствие (2026-09-14): всё, положенное в
/mnt/RED_2TB/backup/*, уезжает в Mail.ru автоматически — правкаbackup.shне нужна. Именно поэтому бэкап конфигов t610 кладётся в/mnt/RED_2TB/backup/t610/(датасетnas:nas770, создан 2026-09-14) — см. family/plans/t610-backup-to-truenas. 📌 Крон запускается внутри контейнера rclone от root, поэтому праваnas:nas 770чтению не мешают.
⚠️ Бэкап Kraken — отдельный rclone-контейнер НА Kraken (НЕ на TrueNAS)
Уточнено 2026-09-20. Kraken бэкапится самостоятельно, не через TrueNAS.
Kraken /srv/.../docker ──rclone (вс 03:00)──► mailru-crypt:kraken/docker (Mail.ru, шифровано)
TrueNAS /mnt/RED_2TB/{docker,backup} ──rclone──► mailru-crypt: (Mail.ru, шифровано)
Между Kraken и TrueNAS бэкапа НЕТ — каждая машина льёт сама в Mail.ru. Kraken на TrueNAS не бэкапится (ни в backup.sh, ни папкой в /mnt/RED_2TB/).
- Контейнер:
rcloneна Kraken (/srv/.../docker/rclone/, образrclone/rclone:latest,restart: always). - Маппинги:
…/docker/rclone/config→/config/rclone,…/(весь диск) →/data. - Расписание:
0 3 * * 0(вс 03:00) черезcrond -fвнутри контейнера, только crontab — пропущенное окно НЕ догоняется. - Скрипт
/config/rclone/backup.sh:run_sync /data/docker mailru-crypt:kraken/docker. - Лог:
/config/rclone/backup.log(растёт до 65 МБ+ — исключать из архива при бэкапе на NAS). - Remotes:
mailru,mailru-crypt(crypt поверхmailru:backup).
❌ Бэкап Kraken фактически НЕПОЛНЫЙ (обнаружено 2026-09-20)
| Факт | Значение |
|---|---|
| Последний прогон | 13 сентября, 3 ч 30 мин |
| Передано | 3.37 GiB, 40021 файл (99%) |
| Ошибок | 292 — сначала 507 Insufficient Storage, затем 400 Bad Request |
| Итог | Failed to sync with 292 errors |
Причина: на Mail.ru кончилось место → WebDAV отдаёт 507 Insufficient Storage, затем 400 Bad Request на любые запросы. Alex подтвердил («в курсе»).
rclone sync при ошибках не удаляет файлы в облаке (not deleting files as there were IO errors) — состояние «столько, сколько влезло».
Плюс: прогон 20 сентября не состоялся — контейнер rclone поднялся только в 11:00 (после фикса гонки docker↔mount), а crontab пропущенное окно не догоняет.
✅ РЕАЛИЗОВАНО (2026-09-20): бэкап Kraken → TrueNAS рядом с t610
Цель: как t610 — Kraken-архив кладётся в /mnt/RED_2TB/backup/kraken/, оттуда существующим скриптом уезжает в Mail.ru. backup.sh TrueNAS не трогаем.
Kraken /srv/.../docker ──(tar + rsync, root, ежедневно 04:00)──► TrueNAS /mnt/RED_2TB/backup/kraken/
▲ NAT не мешает (Kraken сам льёт на mallexxx.duckdns.org:22)
│
└─► rclone backup (вс 03:00, /data/backup → mailru-crypt:) → Mail.ru ← НЕ ТРОГАЛИ
Выбран вариант A (PUSH с Kraken) — Alex, 2026-09-20. PULL (как t610) невозможен: Kraken за NAT, белого IP нет.
| Параметр | Значение |
|---|---|
| Целевой датасет | /mnt/RED_2TB/backup/kraken (NFSv4/Passthrough, nas:nas 770) |
| Скрипт | /home/kraken/kraken-backup-to-truenas.sh на Kraken (под sudo) |
| Крон Kraken | /etc/cron.d/kraken-backup → 0 4 * * * root … |
| Ключ | ~/.ssh/kraken-backup-push на Kraken; pub → sshpubkey юзера nas (id=72) |
| Состав | весь /srv/.../docker кроме jellyfin/ (1.5G metadata) и *.log/backup.log |
| Результат | тар 603M → 165 МБ, 36985 файлов, владелец nas:nas |
| Ротация | 14 архивов, rm на TrueNAS |
⚠️ Остаток: отключить старый прямой бэкап Kraken→mailru-crypt:kraken/docker (crontab контейнера rclone на Kraken, вс 03:00) — ждёт апрува. Иначе дублирование + переполнение Mail.ru. Полный план/питфоллы — family/plans/kraken-backup-to-truenas.
⚠️ Особенности: (1)
sudo -nна Kraken работает без пароля — tar запускается под root, т.к. часть/srv/.../docker/*root-owned; при root-rsync обязателен--chown=nas:nas. (2) Внешний IP Kraken динамический (92.62.70.9на 2026-09-20, ранее.41) →from=вauthorized_keysне ставить.
Remotes
- mailru — WebDAV, Mail.ru Cloud (
webdav.cloud.mail.ru), user:mallexxx@mail.ru - mailru-crypt — rclone crypt поверх
mailru:backup, шифрование имён файлов и директорий (standard) - Оба remotes есть и на TrueNAS, и на Kraken (одинаковые имена).
Добавить что-то в бэкап
Шифрованное → положить в /mnt/RED_2TB/backup/ или /mnt/RED_2TB/docker/ — подхватится автоматически.
Нешифрованное → добавить run_sync строку в /mnt/RED_2TB/docker/rclone/config/backup.sh.
Кандидаты на добавление — конфиги сервисов
| Источник | Куда класть | Статус |
|---|---|---|
Конфиги t610 (HA OS): /config/{configuration,automations,scripts,scenes,secrets}.yaml, /config/.storage/, /config/go2rtc.yaml, zigbee2mqtt, blueprints, HA БД (home-assistant_v2.db), опции ВСЕХ аддонов (Supervisor API), /data/options.json, /data/.ssh/authorized_keys, /addons/{mbusd,modbus-bridge,ustreamer}, /addon_configs/{zigbee2mqtt,nodered} |
/mnt/RED_2TB/backup/t610/ |
✅ РАБОТАЕТ, v4 (2026-09-14) — крон TrueNAS id=3, юзер nas, 03:30 ежедневно, ротация 14 архивов. Детали, питфоллы, команды — [[family/plans/t610-backup-to-truenas]] |
Как работает (проверено 2026-09-14, v4): крон на TrueNAS от юзера nas → ssh на t610 (ключ /mnt/RED_2TB/backup/t610/.ssh/id_ed25519, ограничен from="192.168.2.197") → на t610 выгружаются опции всех аддонов через Supervisor API (/addons/<slug>/info → .data.options) в /tmp/habackup/, затем tar czf - собирается НА t610 → архив t610-full-<ts>.tar.gz (~6.0 МБ, 162 файла) в /mnt/RED_2TB/backup/t610/ → датасет backup целиком уходит в mailru-crypt: по воскресеньям. Лог: backup.log в той же папке.
📌 Почему опции аддонов критичны: там
ha_token(JWT для modbus-bridge),mqtt_passwordmqtt1z3$, привязки USBby-path(usb-0:3/usb-0:4), Zigbee serial, крипто-секрет Node-RED. Без них восстановление = ручная пересборка всего.
⚠️ Важно про права (обновлено 2026-09-14): запись в /mnt/RED_2TB/backup/ требует root (было root:root 775), но целевой датасет backup/t610 — nas:nas 770, поэтому сам бэкап пишется без root. truenas_admin добавлен в группу nas. Root нужен был только для chown nas:nas /mnt/RED_2TB/backup/t610 (один раз). ⚠️ Пароль 1316261 — НЕ от TrueNAS (он от OpenWrt-роутера), root-операции — через System → Shell.
- rclone remotes на Mac отсутствуют (
rclone listremotesпуст) — конфиг сmailru-cryptживёт только на TrueNAS. Бэкап проектировать на стороне NAS, не Mac. - Точки входа:
ssh truenas_admin@mallexxx.duckdns.org(внешний),192.168.2.197(LAN, только с t610).
TODO — добавить в бэкап
Следующие папки из /mnt/RED_2TB/storage/ не бэкапятся, но должны:
| Папка | Размер | Приоритет |
|---|---|---|
storage/git/ |
5.7M | 🔴 высокий — bare repo (obsidian-vault.git, hermes-taiga.git) |
storage/obsidian/ |
1M | 🔴 высокий — рабочая копия Тайги |
storage/art/ |
115M | 🟡 средний |
storage/Music/ |
45G | 🟡 средний |
storage/nas/ |
<1M | 🟡 средний |
storage/shared/ |
<1M | 🟡 средний |
storage/Edu/ |
<1M | 🟡 средний |
Добавить в /mnt/RED_2TB/docker/rclone/config/backup.sh новые run_sync строки.
Шифровать через mailru-crypt: (как docker и backup).
Файлы конфигурации
/mnt/RED_2TB/docker/rclone/config/rclone.conf— remotes (root-only)/mnt/RED_2TB/docker/rclone/config/crontab— расписание/mnt/RED_2TB/docker/rclone/config/backup.sh— скрипт