86 lines
6.5 KiB
Markdown
86 lines
6.5 KiB
Markdown
# 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:` | ✅ да |
|
||
|
||
> 📌 **Бэкап конфигов 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:nas` 770, создан 2026-09-14) — см. [[family/plans/t610-backup-to-truenas]].
|
||
> 📌 Крон запускается **внутри контейнера rclone от root**, поэтому права `nas:nas 770` чтению не мешают.
|
||
|
||
## Remotes
|
||
|
||
- **mailru** — WebDAV, Mail.ru Cloud (`webdav.cloud.mail.ru`), user: `mallexxx@mail.ru`
|
||
- **mailru-crypt** — rclone crypt поверх `mailru:backup`, шифрование имён файлов и директорий (`standard`)
|
||
|
||
## Добавить что-то в бэкап
|
||
|
||
Шифрованное → положить в `/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_password` `mqtt1z3$`, привязки USB `by-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` — скрипт
|