Files
obsidian-vault/family/how-to/truenas-rclone-backup.md
T

86 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` — скрипт