[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:
Alexey Martemyanov committed 2026-09-22 21:52:33 +06:00
1 parent 536ab19dae
commit 7eb8e6ff26
4 files changed
+357 -16

No files matched your search

+102 -9
View File
@@ -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 — «здесь пусто», без постера