[2026-09-22] eagle: personal/plans/kraken-media-inventory-cleanup.md personal/tech/kraken-truenas-media-copies.md personal/tech/lampac-deployment.md personal/tech/skill-lampac-kraken-deploy.md
This commit is contained in:
1 parent
536ab19dae
commit
7eb8e6ff26
4 files changed
+357
-16
No files matched your search
@@ -0,0 +1,104 @@
|
||||
# Кра́кен → TrueNAS: сверка копий медиа
|
||||
|
||||
> Составлен 2026-09-22. Проверка перед сносом: есть ли на TrueNAS копии
|
||||
> доксериалов, документалок и мультфильмов с Кра́кена.
|
||||
> **Ответ: копий почти нет. Доксериалы/документалки — 0 копий. Мультфильмы — частично.**
|
||||
|
||||
## Зачем проверяли
|
||||
|
||||
Alex запросил подтверждение перед удалением: «подтверди что все документалки и
|
||||
мультфильмы на truenas есть копии». Если копия есть — снос безопасен.
|
||||
|
||||
## Хосты (не путать)
|
||||
|
||||
| Хост | SSH | arch | Что |
|
||||
|---|---|---|---|
|
||||
| **Кра́кен** | `ssh kraken` | aarch64 | Debian 12 / OMV, Lampac, Radarr, Sonarr |
|
||||
| **TrueNAS** | `ssh truenas_admin@mallexxx.duckdns.org` | x86_64 | TrueNAS SCALE 24.10.2.4 |
|
||||
|
||||
## Что на TrueNAS
|
||||
|
||||
Пул `RED_2TB` (986 ГБ, 78% занято). Медиа — в `/mnt/RED_2TB/storage/`.
|
||||
|
||||
| Папка | Файлов | Размер | Что внутри |
|
||||
|---|---|---|---|
|
||||
| `Movies` | 804 | 2031,81 ГБ | основная фильмотека |
|
||||
| `Cartoons` | 966 | 191,09 ГБ | мультфильмы + мультсериалы |
|
||||
| `series` | 71 | 55,77 ГБ | сериалы |
|
||||
| `cartoons-series` | 9 | 2,62 ГБ | **только сборник `Kazaki`** |
|
||||
| `documentaries` | **1** | 2,18 ГБ | **только `Храброе сердце.avi`** |
|
||||
| `documentaries-series` | **0** | 0 | **пусто** |
|
||||
|
||||
🔴 **`documentaries` и `documentaries-series` на TrueNAS фактически пусты.**
|
||||
Всё, что на Кра́кене в этих папках (307 ГБ) — **уникально, копий нет**.
|
||||
|
||||
## Покрытие мультфильмов Кра́кена на TrueNAS
|
||||
|
||||
### Есть копия (14 позиций, 30,1 ГБ)
|
||||
|
||||
| ГБ | Тайтл | Копия на TrueNAS |
|
||||
|---|---|---|
|
||||
| 11,97 | король лев (1994) | `Король Лев.avi` |
|
||||
| 3,74 | ну, погоди! | `Ну погоди!` (22 файла) |
|
||||
| 3,36 | 38 попугаев 1976-1991 | `38 Попугаев` (12 файлов) |
|
||||
| 3,25 | остров сокровищ (1988) | — |
|
||||
| 2,96 | котенок по имени гав | `Котенок по имени Гав` (4) |
|
||||
| 1,97 | чебурашка | `ЧеБурашка` (4) |
|
||||
| 0,82 | обезьянки | — |
|
||||
| 0,70 | винни-пух | `Винни Пух` (3) |
|
||||
| 0,34 | вовка в тридевятом царстве | `Вовка в тридевятом царстве.avi` |
|
||||
| 0,34 | как львенок и черепаха пели песню | одноимённый файл |
|
||||
| 0,27 | трое из простоквашино | `Простоквашино` (3) |
|
||||
| 0,17 | бобик в гостях у барбоса | `Бобик в гостях у Барбоса.avi` |
|
||||
| 0,16 | времена года (1969) | — |
|
||||
| 0,05 | пиф-паф ой-ой-ой 1980 | `Пиф-паф Ой-ой-ой!.avi` |
|
||||
|
||||
Также на TrueNAS есть, но на Кра́кене в других папках: `Smeshariki.DVDRemux`
|
||||
(207 файлов, 61,6 ГБ) · `Pinky.and.the.Brain` (114, 24,9 ГБ) · `Tom and Jerry`
|
||||
(163, 15,3 ГБ) · `Малышарики` (256) · `Мимимишки` (120) · Принцесса Мононоке ·
|
||||
Ходячий замок · Мой сосед Тоторо · Книга Джунглей · Полярный экспресс · Аладдин (3) ·
|
||||
Бэмби I–II · Ледниковый период · Золушка · Русалочка · Кунг-фу Панда · Мадагаскар 2 ·
|
||||
Белка и Стрелка · Труп невесты · Балерина · Аисты · Рапунцель · Тачки · Фердинанд ·
|
||||
Роджер Рэббит · Аленький цветочек · Жил-был пёс
|
||||
|
||||
### Копии НЕТ (только на Кра́кене)
|
||||
|
||||
Современная иностранная анимация: `кот в сапогах 2011` · `lightyear` · `inside out` ·
|
||||
`luca` · `миграция` · `encanto` · `elemental` · `turning red` · `Super Mario` ·
|
||||
`despicable me 4` · `corpse bride` · `the iron giant` · `le grand mechant renard` ·
|
||||
`земля до начала времен` · `the secret life of pets`
|
||||
|
||||
Советская анимация: `ёжик в тумане` · `мойдодыр` · `снежная королева 1957` ·
|
||||
`двенадцать месяцев` · `чиполлино` · `сказка сказок` · `золотая антилопа` ·
|
||||
`дюймовочка` · `маугли 1973` · `волшебник изумрудного города` · `Доктор Айболит` ·
|
||||
`Приключения капитана Врунгеля` · `Тайна третьей планеты` · `Neznaika.na.lune` ·
|
||||
`Bremenskie.muzykaнty` · `малыш и карлсон` · `домовёнок кузя` · `Приключения Фунтика` ·
|
||||
`баба-яга против` · и ~60 короткометражек
|
||||
|
||||
**Итог: из ~104 мультфильмов на Кра́кене копия есть у ~40, у ~64 — нет.**
|
||||
|
||||
## Метод
|
||||
|
||||
1. Обход TrueNAS: `find /mnt/RED_2TB/storage/{Cartoons,cartoons-series,documentaries,documentaries-series,Movies,series}`
|
||||
→ `/tmp/truenas_media.tsv` (1851 строка), стянут на Mac в `/tmp/truenas_media.json`.
|
||||
2. Нормализация имён (снятие качества, релиз-группы, года, расширения) + токенное
|
||||
сравнение в обе стороны: `inter/min(len) >= 0.85` и `inter/max(len) >= 0.6`.
|
||||
3. Скрипты: `/tmp/tn_inv.sh` (обход), `/tmp/tn_load.py` (загрузка), `/tmp/tn_compare.py`
|
||||
и `/tmp/tn_cartoons.py` (сверка).
|
||||
|
||||
Артефакты: `/Users/admin/kraken-vs-truenas.json`, `/tmp/truenas_media.tsv`.
|
||||
|
||||
## Питфоллы
|
||||
|
||||
- 🔴 **`documentaries` на TrueNAS не пуста, но содержит 1 файл** — `Храброе сердце.avi`
|
||||
(2,18 ГБ, от 2022). Легко принять за «копии есть».
|
||||
- 🔴 **`cartoons-series` на TrueNAS = 1 сборник `Kazaki`**, а не полноценный раздел.
|
||||
- ⚠️ `find` по 966 файлам `Cartoons` идёт долго (несколько минут) — не таймаутить.
|
||||
- ⚠️ Названия на TrueNAS в основном **русские** (`Король Лев.avi`), на Кра́кене —
|
||||
смешанные. Матч только по нормализованным токенам, не по подстроке.
|
||||
|
||||
## Связанные
|
||||
|
||||
- [[personal/plans/kraken-media-inventory-cleanup]] — инвентаризация и список на снос
|
||||
- [[personal/tech/lampac-deployment]] — Lampac, disk inventory
|
||||
- [[family/plans/kraken-backup-to-truenas]] — бэкапы Кра́кена на TrueNAS
|
||||
@@ -3423,21 +3423,114 @@ watchlist. Пересчёт по правилу «name + original + год ±1»
|
||||
их там правда нет (0 совпадений по «Oldboy», 0 по «Hail Mary»); они в Radarr,
|
||||
но не в watchlist.
|
||||
|
||||
## 🔴 Transmission на Кра́кене — чистка перед удалением медиа (2026-09-22)
|
||||
|
||||
Состояние: **249 раздач**, суммарно 1,92 ТБ заявленного размера.
|
||||
|
||||
### Доступ к RPC
|
||||
|
||||
```
|
||||
URL: http://127.0.0.1:9091/transmission/rpc
|
||||
Auth: НЕ требуется — settings.json: "rpc-authentication-required": false
|
||||
"rpc-username": "" (пусто)
|
||||
```
|
||||
|
||||
🔴 **Transmission требует session-id.** Первый POST возвращает `409` и заголовок
|
||||
`X-Transmission-Session-Id`; забрать его и повторить POST с ним:
|
||||
|
||||
```bash
|
||||
TS="http://127.0.0.1:9091/transmission/rpc"
|
||||
SID=$(curl -s -i -X POST "$TS" -H 'Content-Type: application/json' \
|
||||
-d '{"method":"session-get"}' | tr -d '\r' | awk '/^X-Transmission-Session-Id:/{print $2}')
|
||||
curl -s -X POST "$TS" -H "X-Transmission-Session-Id: $SID" \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"method":"torrent-get","arguments":{"fields":["id","name","status","percentDone",
|
||||
"totalSize","downloadDir","error","errorString"]}}'
|
||||
```
|
||||
|
||||
### Классификация раздач
|
||||
|
||||
`error` (число): `0` = нет ошибки, **`3` = `TR_STAT_LOCAL_ERROR`** → `"No data found!"`.
|
||||
`status`: 0=stopped, 1=check-wait, 2=checking, 3=dl-wait, 4=downloading, 5=seed-wait, 6=seeding.
|
||||
|
||||
| Кат. | Раздач | ГБ | Признак |
|
||||
|---|---|---|---|
|
||||
| **A. data missing** | 21 | 561,6 | `errorString` содержит `No data found` |
|
||||
| **B. no space** | 8 | 88,8 | `errorString` содержит `Unable to save resume file: No space left on device` |
|
||||
| **C. в списке на снос** | 204 | 1005,6 | `downloadDir` под удаляемые папки |
|
||||
| **E. прочее** | 16 | — | |
|
||||
|
||||
🔴 **Категория A = «мёртвый вес»: файлы удалены руками, раздачи остались.** Крупняк:
|
||||
Babylon 92,01 · Schindler's List 89,35 · Midsommar 85,59 · Triangle of Sadness 79,68 ·
|
||||
Chaos Walking 58,36 · Oldeuboi 28,65 · Начало 24,25 · Whiplash 23,66 · Леон 19,73 ГБ.
|
||||
Плюс 6 раздач без файлов в `downloads/complete/radarr` и `downloads/radarr` (9–98 ГБ).
|
||||
Удаление из списка — без потерь.
|
||||
|
||||
⚠️ **Категория C шире, чем список сноса.** В неё попадают раздачи, чьи файлы остаются
|
||||
на диске: `Шпион 2015` (25,9) · `Секс Education` (25,8) · `Лука 2021` (22,4) ·
|
||||
`Сияние 1980` (40,4) · `Терминал 2004` (17,7) · `Хорошие парни` (16,4).
|
||||
Удаление раздачи ≠ удаление файла: файл остаётся, сидирование прекращается.
|
||||
|
||||
⚠️ **`downloadDir` раздач — это `/media/...`, а не host-путь.** Внутри контейнера
|
||||
монтируется `/media`, host-путь другой. Матчить по префиксу `/media/...`,
|
||||
не по `/srv/...`.
|
||||
|
||||
### 🔴 TorrServer/Lampa не используют `media/` — играют с торрентов
|
||||
|
||||
`curl -X POST http://127.0.0.1:9118/ts/settings -d '{"action":"get"}'`:
|
||||
|
||||
```json
|
||||
{"CacheSize": 100663296, "UseDisk": false, "TorrentsSavePath": "",
|
||||
"RemoveCacheOnDrop": false, "ReaderReadAHead": 83}
|
||||
```
|
||||
|
||||
**`UseDisk: false` + пустой `TorrentsSavePath` + кэш 96 МБ (только RAM)** — TorrServer
|
||||
на диск не пишет, Lampa стримит раздачу напрямую из сети. Файлы в `media/` на Кра́кене
|
||||
**в воспроизведении Lampa не участвуют**.
|
||||
|
||||
→ Снос watchlist-фильмов с диска **не ломает Lampa**. Ранее сделанный вывод
|
||||
«снесёшь то, что играет в Lampa» — **НЕВЕРЕН** (Alex: «она же не с кракена играет!
|
||||
... она с торрентов играет»).
|
||||
|
||||
⚠️ **Но Jellyfin (`:8096`, живёт на Кра́кене) может смотреть в `media/`.** Перед
|
||||
удалением проверить его библиотеки; после — обязателен rescan.
|
||||
|
||||
Артефакты: `/tmp/tr-list.json`, `/Users/admin/transmission-classified.json`
|
||||
Скрипты: `/tmp/tr_diag.sh`, `/tmp/tr_classify.py`
|
||||
|
||||
## Сверка копий Кра́кен ↔ TrueNAS (2026-09-22)
|
||||
|
||||
Отдельный документ: **[[personal/tech/kraken-truenas-media-copies]]**.
|
||||
|
||||
Кратко: на TrueNAS (`truenas_admin@mallexxx.duckdns.org`, пул `RED_2TB`,
|
||||
`/mnt/RED_2TB/storage/`) `documentaries` = **1 файл**, `documentaries-series` = **пусто**,
|
||||
`cartoons-series` = **1 сборник**. То есть 307 ГБ доксериалов/документалок с Кра́кена
|
||||
**копий не имеют**. Мультфильмы — копия есть у ~40 из ~104.
|
||||
|
||||
⚠️ **`documentaries` не пуста и содержит `Храброе сердце.avi` (2,18 ГБ)** — легко
|
||||
принять за «копии есть», проверив только `ls` без подсчёта.
|
||||
|
||||
## ⏳ Осталось добить (2026-09-22)
|
||||
|
||||
### 0. 🔴 Удаление медиа на Кра́кене — ждёт выбора Alex
|
||||
### 0. ✅ Удаление медиа на Кра́кене — список УТВЕРЖДЁН, ждёт ответа по Transmission
|
||||
|
||||
Инвентаризация сделана: [[personal/plans/kraken-media-inventory-cleanup]].
|
||||
Инвентаризация: [[personal/plans/kraken-media-inventory-cleanup]].
|
||||
802 файла / 233 позиции / 1236 ГБ. Свободно 477 ГБ.
|
||||
|
||||
Предложены 3 варианта, ответа нет:
|
||||
1. Только `downloads/complete` — **78.6 ГБ**, нулевой риск (всё есть в библиотеке).
|
||||
2. + доксериалы вне watchlist — ~390 ГБ.
|
||||
3. Всё не из watchlist — 780 ГБ.
|
||||
**Утверждено Alex'ом: 111 позиций, 828,3 ГБ** — фильмы полный метр (62 / 485,9 ГБ),
|
||||
сериалы все (5 / 119,7 ГБ), мультфильмы с копией на TrueNAS (14 / 30,1 ГБ),
|
||||
мультфильмы полный метр без копии (30 / 192,6 ГБ). Короткометражки `cartoons`
|
||||
<0,8 ГБ (72 поз. / 21,7 ГБ) — **оставить**.
|
||||
|
||||
**Порядок действий при любом варианте:** дамп `radarr`/`sonarr` API в файл →
|
||||
удаление → проверка сырьём. Стект-директории (`movies-radarr`, `series-sonarr`)
|
||||
удалять только через API, иначе Radarr держит фантом.
|
||||
**Порядок:** дамп API Radarr/Sonarr → стоп Transmission → чистка раздач A+C →
|
||||
удаление файлов → **rescan Radarr/Sonarr/Jellyfin** → проверка df/docker →
|
||||
приёмка Alex'ом → доки + коммит.
|
||||
|
||||
**Открытый вопрос:** категория C Transmission — удалять все 204 раздачи, или только
|
||||
те, что соответствуют 111 позициям? Второе аккуратнее.
|
||||
|
||||
⚠️ Стект-директории (`movies-radarr`, `series-sonarr`) удалять только через API,
|
||||
иначе Radarr держит фантом.
|
||||
|
||||
### 1. 5 фильмов с Кинопоиск-ID — «здесь пусто», без постера
|
||||
|
||||
|
||||
@@ -64,6 +64,26 @@ related:
|
||||
18. Удаление только через API arr-стека; `deleteFiles=true` — проверять, что путь внутри
|
||||
библиотеки. Дамп API в файл перед операцией.
|
||||
|
||||
Читать продолжение поверх: [[personal/tech/lampac-deployment]], раздел «Transmission на Кра́кене».
|
||||
|
||||
19. 🔴 **Матч с watchlist — `name` И `original` + год ±1.** Строгое равенство только по
|
||||
русскому `name` пропускает файлы, названные по оригиналу: `Bram.Stoker's Dracula.1992`
|
||||
→ «Дракула» (6114), `The.Crow.1994` → «Ворон» (9495), `despicable.me.4.2024` →
|
||||
«Гадкий я 4» (519182). 4 промаха = 27,3 ГБ, ошибочно помеченных «не в watchlist».
|
||||
Токенный матч тоже гадит: «пингвины. шпион в толпе» → «Шпион» (2015).
|
||||
20. 🔴 **`UseDisk: false` у TorrServer — Lampa играет С ТОРРЕНТОВ, не с диска.**
|
||||
Проверять `curl -X POST :9118/ts/settings -d '{"action":"get"}'` перед любым
|
||||
предупреждением «снесёшь то, что играет». Файлы `media/` в плейбэке Lampa не участвуют.
|
||||
21. 🔴 **Transmission RPC на Кра́кене: авторизации нет, но нужен session-id.**
|
||||
Первый POST → 409 + `X-Transmission-Session-Id`; забрать и повторить.
|
||||
`error: 3` = `"No data found!"` — файлы удалены, раздачи висят (21 шт. / 561,6 ГБ).
|
||||
⚠️ `downloadDir` = путь **внутри контейнера** (`/media/...`), не host-путь.
|
||||
22. 🔴 **Перед сносом «копия есть на другом хосте» — СЧИТАТЬ, а не `ls`.**
|
||||
На TrueNAS `documentaries` = 1 файл, `documentaries-series` = пусто,
|
||||
`cartoons-series` = 1 сборник. 307 ГБ доксериалов/документалок Кра́кена уникальны.
|
||||
23. ⚠️ **Jellyfin на Кра́кене (`:8096`) может смотреть в `media/`** — проверить библиотеки
|
||||
до удаления, rescan после. Это единственная реальная связь `media/` с просмотром.
|
||||
|
||||
## Установка Lampa на ТВ (сжато)
|
||||
|
||||
```bash
|
||||
@@ -99,9 +119,14 @@ ssh kraken 'sudo rm -rf /srv/dev-disk-by-uuid-6194539b-03e0-4f33-986b-4da09834e8
|
||||
|
||||
## Не закрыто
|
||||
|
||||
- Лимит кэша TorrServer — дефолт. Рекомендуется ~20 ГБ.
|
||||
- 🔴 Удаление медиа на Кра́кене — ждёт выбора Alex (3 варианта в
|
||||
[[personal/plans/kraken-media-inventory-cleanup]], раздел «Что дальше»).
|
||||
- Лимит кэша TorrServer — дефолт (`UseDisk: false`, 96 МБ RAM). ⚠️ Это и есть причина,
|
||||
что Lampa играет с торрентов, а не с диска — менять только осознанно.
|
||||
- 🔴 **Удаление медиа на Кра́кене — список УТВЕРЖДЁН** (111 позиций, 828,3 ГБ), ждёт
|
||||
ответа по категории C Transmission. Детали: [[personal/plans/kraken-media-inventory-cleanup]].
|
||||
- ⚠️ Проверка библиотек Jellyfin на Кра́кене перед удалением — **не сделана**
|
||||
(команда ушла в таймаут апрува).
|
||||
- ⚠️ Уборка: каталог `/Users/admin/personal/` (артефакт записи по относительному пути) —
|
||||
удалить.
|
||||
- Шаг 7 — watchlist в UI Lampa: [[personal/plans/lampac-watchlist-plugin]].
|
||||
- Секции Watchlist внутри CUB-фида — инжект залит, приёмка в UI не подтверждена.
|
||||
|
||||
@@ -113,3 +138,8 @@ ssh kraken 'sudo rm -rf /srv/dev-disk-by-uuid-6194539b-03e0-4f33-986b-4da09834e8
|
||||
питфолл `luna-send`+`script`, appId `com.lampac.tv`) и новые 12–18 (инвентаризация диска,
|
||||
дубли `downloads/complete`, строгий матч с watchlist, `tmdb_id` в `href`) перенесены
|
||||
в файл скилла, включая раздел «Pillar: disk inventory & deletion candidates».
|
||||
|
||||
✅ **Синхронизирован 2026-09-22 (ночь).** Добавлен раздел «Pillar: media inventory,
|
||||
Transmission cleanup & deletion» (пункты 19–23): матч по `name`+`original`+год,
|
||||
TorrServer `UseDisk: false` (Lampa играет с торрентов), Transmission RPC session-id +
|
||||
`error: 3`, cross-host проверка копий счётом, Jellyfin как единственная связь `media/`.
|
||||
Reference in new issue
Block a user