[2026-09-22] eagle: personal/plans/kraken-media-inventory-cleanup.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:57:37 +06:00
1 parent 7eb8e6ff26
commit 329bd9fc36
3 files changed
+278 -21

No files matched your search

+158 -14
View File
@@ -5,7 +5,8 @@ related:
- '[[personal/plans/lampac-watchlist-plugin]]'
- '[[personal/plans/lampac-kraken]]'
- '[[personal/tech/lampac-deployment]]'
status: deletion-approved-awaiting-transmission-decision
- '[[personal/tech/kraken-truenas-media-copies]]'
status: transmission-stopped-manifest-ready-awaiting-answers
tags:
- kraken
- media
@@ -233,6 +234,87 @@ Alex подтвердил все три вопроса: группа 4 (копи
есть у ~40 из ~104; группа 3 (30,1 ГБ) — именно те, что закрыты. Детали и метод:
[[personal/tech/kraken-truenas-media-copies]].
## ✅ ШЕСТЬ ШАГОВ — ВЫПОЛНЕНО 4 из 6 (2026-09-22)
### Шаг 1 — дамп API Radarr/Sonarr ✅ ВЫПОЛНЕН
```
/tmp/arr-backup-20260922-215428/
radarr-movies.json 170 КБ
radarr-queue.json 129 Б
radarr-status.json 868 Б
sonarr-series.json 55 КБ
sonarr-queue.json 129 Б
sonarr-status.json 836 Б
```
| | Значение |
|---|---|
| Radarr | **6.4.4.10685**, 34 фильма, **12 с файлами**, очередь 0 |
| Sonarr | **4.0.20.3014**, 13 сериалов, очередь 0 |
🔴 **У Sonarr 13 сериалов, но файлы есть только у 4** (Our Flag Means Death,
Stranger Things, The Cyberfarm, Rick and Morty). Остальные 9 — **фантомы**
(записи без файлов): `Magical Police Department` · `The Meeting Place Cannot be Changed` ·
`MOZU` · `Delicious in Dungeon` · `Double or Quits` · `Severance` · `Futurama` ·
`True Detective` · `Brassic`.
⚠️ **`Brassic`** — в Sonarr есть запись, на диске `/media/series` лежит `Brassic (Season 1)`
(3,62 ГБ). Файлы вне библиотеки Sonarr — рассинхрон раскладки.
### Шаг 2 — стоп Transmission ✅ ВЫПОЛНЕН
`sudo docker stop transmission` → `Exited (0)`. Обратно поднимать после удаления раздач.
### Шаг 3 — чистка раздач ⏳ ГОТОВ к запуску (план построен, см. выше)
240 id в `/tmp/tr-remove-ids.txt`. Механика: контейнер остановлен → правим
`/srv/.../docker/transmission/torrents/*.torrent` + `resume/*.resume` + строку в `settings.json`.
### Шаг 4 — удаление файлов ⏳ МАНИФЕСТ ГОТОВ, ждёт подтверждения
**41 путь на диске, 693,3 ГБ.** Все пути проверены `-e` → отсутствующих 0.
| Путь | ГБ |
|---|---|
| `media/movies` | 309,69 |
| `media/movies-radarr` | 234,59 |
| `media/series` | 3,62 |
| `media/series-sonarr` | 116,14 |
| 37 папок мультфильмов (группы 3+4) | 29,3 |
| **ИТОГО** | **693,3** |
**Верификация состава `movies`/`movies-radarr`:** сверены все 51 + 11 позиций
против утверждённого списка — **все утверждены**, лишнего нет.
⚠️ **В `movies/` есть «сироты» — `.nfo`, `.srt`, постеры без видео:**
`Master.i.Margarita.2023` · `Pchelovod.2024` · `Планета обезьян Новое царство_2024` ·
`Леон (авторская версия)` · `Самолетом, поездом, машиной (1987)` · `Ворон_2024`.
Самого фильма нет, инвентарь (считает только видеофайлы) их не видел.
Удалять их правильно — это мусор от ранее удалённых фильмов.
### ⚠️ Расхождение 693 ГБ против 828 ГБ — РАЗОБРАНО
В манифест не попали **7 папок мультфильмов (42,1 ГБ)** из-за несовпадения имён папок
в скрипте: `смешарики. новый сезон. 2020` (26,43) · `Corpse.Bride.2005` (7,90) ·
`Тайна третьей планеты (1981)` (3,38) · `чебурашка` (1,97) ·
`The.Super.Mario.Bros.Movie.2023` (1,46) · `the.secret.life.of.pets.(480p)` (0,94).
**Это баг имён в манифесте, не логики.** Добавить — итог станет **735,4 ГБ**.
Остальные ~72 ГБ расхождения — короткометражки, оставленные по решению Alex.
Артефакты: `/tmp/delete-manifest.txt` (41 путь), `/tmp/step3b.sh` (сбор + верификация),
`/tmp/step3_manifest.sh` (первая версия), `/tmp/verify_movies.py` (сверка состава),
`/tmp/chk.py` (список путей cartoons).
### Шаги 5–6 — rescan + проверка ⏳ НЕ НАЧАТЫ
## ⚠️ Открытые вопросы, блокирующие шаг 4 (заданы Alex'у)
1. **Добавить 7 пропущенных папок мультфильмов?** Да → 735,4 ГБ. Нет → 693,3 ГБ.
2. **`documentaries-series` (235,6 ГБ) и `documentaries` (71,9 ГБ) — не в списке,
копий на TrueNAS нет.** Точно оставляем?
## 🔴 Порядок удаления (утверждён) — 6 шагов
1. **Дамп API** Radarr + Sonarr в файл (`/tmp/radarr-dump-*`, `/tmp/sonarr-dump-*`).
@@ -266,19 +348,63 @@ Funhouse 8,87 · Мортал Комбат 2 4,15 · + 7 мелких
Также 6 раздач без файлов в `downloads/complete/radarr` и `downloads/radarr` (9–98 ГБ).
Это «мёртвый вес» в списке — удалять из Transmission без потерь.
### ⚠️ Открытый вопрос по категории C (ждёт решения Alex)
### ✅ РЕШЕНИЕ ALEX по категории C и недокачанным (2026-09-22)
Категория C (204 раздачи, 1005,6 ГБ) включает раздачи, чьи файлы **вне** списка на
снос: `Шпион 2015` (25,9) · `Секс Education` (25,8) · `Лука 2021` (22,4) ·
`Сияние 1980` (40,4) · `Терминал 2004` (17,7) · `Хорошие парни` (16,4) и др.
Если удалить раздачу, а файл оставить — Transmission о нём забудет, файл останется.
Не потеря, но сидирование прекратится.
> «да. плюс недакачанные если в transmission есть останавливай и тоже сноси. C - целиком»
**Вопрос Alex:** удалять все раздачи категории C, или только соответствующие
111 позициям? Второе аккуратнее.
Правила удаления раздач (утверждены):
Артефакты: `/tmp/tr-list.json` (сырой ответ API), `/Users/admin/transmission-classified.json`
Скрипты: `/tmp/tr_diag.sh` (сбор, чтение), `/tmp/tr_classify.py` (классификация)
```
data_missing (ERR=3 «No data found») -> снести из списка
путь в delete_set (C) -> снести ЦЕЛИКОМ
status=0 (stopped) и percentDone < 100% -> снести (недокачанные)
```
### План удаления раздач — посчитан
| | Раздач | ГБ |
|---|---|---|
| **СНЕСТИ** | **240** | **1 769,0** |
| оставить | 9 | 20,0 |
По причинам: `data_missing` 21 · `in_delete_set` 230 · `stopped_incomplete` 161
(пересечения — одна раздача может попасть в несколько причин).
**Остаются 9 раздач** — только документалки вне списка сноса:
`Sky.Sharks.2022` · `The.Way.of.the.Cheetah` · `Thailands.Wild.Cats` ·
`Jade.Eyed.Leopard` · `The.Frozen.Kingdom.of.the.Snow.Leopard` · `Russias.Wild.Tiger` ·
`The.Real.Black.Panther` · `Тайная жизнь собак` · `King Cobra`
(все `/media/documentaries*`, 100%, сидируются).
Артефакты: `/tmp/tr-list.json` (сырой ответ API), `/Users/admin/transmission-classified.json`,
`/Users/admin/transmission-remove-plan.json`, `/tmp/tr-remove-ids.txt` (240 id через запятую).
Скрипты: `/tmp/tr_diag.sh` (сбор, чтение), `/tmp/tr_classify.py` (классификация),
`/tmp/step2_plan.py` (план удаления).
### ✅ Transmission ОСТАНОВЛЕН (2026-09-22)
```
sudo docker stop transmission → transmission Exited (0)
```
⚠️ **Следствие:** RPC (`:9091`) недоступен, пока контейнер стоит. Правки состояния —
через файлы в `/srv/.../docker/transmission/` (bind-mount → `/config` в контейнере).
`torrents/` + `resume/` + `settings.json`.
### ⚠️ Питфолл: Radarr/Sonarr API и URL base
`curl http://127.0.0.1:7878/api/v3/...` → **HTTP 307** (редирект, тело пустое).
У обоих установлен `UrlBase`: `/radarr` и `/sonarr` (порт TorrServer-транзит: контейнеры
публикуют `7878->7878` и `8989->8989`, но приложение слушает под префиксом).
**Правильно:**
```bash
curl -sL -H "X-Api-Key: $KEY" "http://127.0.0.1:7878/radarr/api/v3/movie"
curl -sL -H "X-Api-Key: $KEY" "http://127.0.0.1:8989/sonarr/api/v3/series"
```
Ключ: `sudo grep -oE '<ApiKey>[^<]+' <config dir>/config.xml | sed 's/<ApiKey>//'`
(32 символа). Без `-L` и без префикса ответ пустой — легко принять за «API лежит».
Скрипт: `/tmp/step1c.sh`
### 🔴 TorrServer/Lampa к `media/` отношения не имеют
@@ -321,12 +447,30 @@ Lampa **не участвуют**. Поэтому 24 «watchlist»-фильма
- [x] **Сверка с TrueNAS** — доксериалы/документалки копий не имеют (307 ГБ уникальны)
- [x] **Список на снос утверждён Alex'ом** — 111 позиций, 828,3 ГБ
- [x] **Диагностика Transmission** — 249 раздач, классифицированы
- [ ] Шаг 6a — дамп API Radarr/Sonarr
- [ ] Шаг 6b — стоп Transmission + чистка раздач (ждёт ответа по категории C)
- [ ] Шаг 6c — удаление файлов по 111 позициям
- [x] **Шаг 6a — дамп API Radarr/Sonarr** ✅ `/tmp/arr-backup-20260922-215428/`
- [x] **Шаг 6b — стоп Transmission** ✅ `Exited (0)`; план чистки: 240 раздач, 1769 ГБ
- [ ] Шаг 6b-2 — удалить 240 раздач из Transmission (файлы состояния, контейнер стоит)
- [ ] Шаг 6c — удаление файлов: манифест 41 путь / 693,3 ГБ готов, **ждёт ответа на 2 вопроса**
- [ ] Шаг 6d — rescan Radarr/Sonarr/Jellyfin
- [ ] Шаг 6e — проверка df/docker + приёмка Alex'ом
- [ ] Шаг 6f — обновить доки + коммит
- [ ] Уборка: `rm -rf /Users/admin/personal` (побочный артефакт, см. ниже)
## 🎯 ГДЕ МЫ СЕЙЧАС (для следующей сессии)
**Transmission остановлен. Файлы не удалены. Манифест построен и верифицирован.**
Чтобы продолжить:
1. Получить от Alex ответ на 2 вопроса выше (7 папок мультфильмов; доксериалы).
2. Собрать финальный манифест (`/tmp/step3b.sh`, добавить 7 путей при необходимости).
3. Удалить 240 раздач из Transmission (контейнер остановлен → файлы состояния).
4. `xargs rm` по манифесту с логом.
5. `docker start transmission`, rescan Radarr/Sonarr/Jellyfin.
6. `df -h` до/после → приёмка Alex'ом → коммит.
⚠️ **`rm -rf` на папки `movies`/`movies-radarr`/`series`/`series-sonarr` целиком** —
именно так устроен манифест (41 путь = 4 папки + 37 папок мультфильмов).
Внутренний отбор не пофайловый, а по целым папкам.
### ⚠️ Побочный артефакт, требует уборки
+96 -7
View File
@@ -3495,8 +3495,71 @@ Chaos Walking 58,36 · Oldeuboi 28,65 · Начало 24,25 · Whiplash 23,66 ·
⚠️ **Но Jellyfin (`:8096`, живёт на Кра́кене) может смотреть в `media/`.** Перед
удалением проверить его библиотеки; после — обязателен rescan.
Артефакты: `/tmp/tr-list.json`, `/Users/admin/transmission-classified.json`
Скрипты: `/tmp/tr_diag.sh`, `/tmp/tr_classify.py`
Артефакты: `/tmp/tr-list.json`, `/Users/admin/transmission-classified.json`,
`/Users/admin/transmission-remove-plan.json`
Скрипты: `/tmp/tr_diag.sh`, `/tmp/tr_classify.py`, `/tmp/step2_plan.py`
### ✅ Решение Alex по чистке раздач (2026-09-22)
> «плюс недакачанные если в transmission есть останавливай и тоже сноси. C - целиком»
```
data_missing (error==3) -> удалить из списка
downloadDir под удаляемые папки (C) -> удалить ЦЕЛИКОМ (не только совпадающие)
status==0 (stopped) и percentDone < 1.0 -> удалить (недокачанные)
```
**Итог плана: снести 240 раздач (1 769 ГБ), оставить 9 (20 ГБ).**
Остаются только документалки вне списка сноса (`Sky.Sharks`, `Way of the Cheetah`,
`Thailands.Wild.Cats`, `Jade.Eyed.Leopard`, `Frozen Kingdom of Snow Leopard`,
`Russias.Wild.Tiger`, `Real Black Panther`, `Тайная жизнь собак`, `King Cobra`) —
все в `/media/documentaries*`, 100%, сидируются.
ID: `/tmp/tr-remove-ids.txt` (240 id через запятую).
⚠️ **После `docker stop transmission` RPC недоступен.** Править состояние — через
файлы bind-mount'а `/srv/.../docker/transmission/` (`torrents/`, `resume/`, `settings.json`).
## 🔴 Radarr/Sonarr API — обязательно `UrlBase` + `-L` (2026-09-22)
```
curl http://127.0.0.1:7878/api/v3/system/status → HTTP 307, тело ПУСТОЕ
curl http://127.0.0.1:8989/api/v3/system/status → HTTP 307, тело ПУСТОЕ
```
У обеих установок задан `UrlBase`: **`/radarr`** и **`/sonarr`**
(`config/config.xml` → `<UrlBase>/radarr</UrlBase>`). Контейнеры публикуют
`7878->7878` / `8989->8989`, но приложение слушает под префиксом.
**Рабочий вызов:**
```bash
B=/srv/dev-disk-by-uuid-6194539b-03e0-4f33-986b-4da09834e82f/docker
RKEY=$(sudo grep -oE '<ApiKey>[^<]+' "$B/radarr/config/config.xml" | sed 's/<ApiKey>//')
SKEY=$(sudo grep -oE '<ApiKey>[^<]+' "$B/sonarr/config/config.xml" | sed 's/<ApiKey>//')
curl -sL -H "X-Api-Key: $RKEY" "http://127.0.0.1:7878/radarr/api/v3/movie"
curl -sL -H "X-Api-Key: $SKEY" "http://127.0.0.1:8989/sonarr/api/v3/series"
```
🔴 **Симптом ложного вывода:** без `-L` и без префикса `curl` отдаёт пустое тело и
**0 байт в файле дампа** — выглядит как «API лежит / ключ неверный». Ключ при этом
читается нормально (32 символа). Диагностика: `curl -o /dev/null -w "%{http_code}"` → `307`.
Скрипт: `/tmp/step1c.sh`.
### Состояние arr-стека на Кра́кене (2026-09-22)
| | Версия | Записей | С файлами |
|---|---|---|---|
| Radarr | 6.4.4.10685 | 34 фильма | **12** |
| Sonarr | 4.0.20.3014 | 13 сериалов | **4** |
🔴 **У Sonarr 9 из 13 сериалов — фантомы** (записи без файлов): `Magical Police Department`,
`The Meeting Place Cannot be Changed`, `MOZU`, `Delicious in Dungeon`, `Double or Quits`,
`Severance`, `Futurama`, `True Detective`, `Brassic`.
Файлы есть только у `Our Flag Means Death`, `Stranger Things`, `The Cyberfarm`, `Rick and Morty`.
⚠️ `Brassic` — в Sonarr запись есть, файлы лежат в `/media/series/Brassic (Season 1)`
**вне** библиотеки Sonarr (`/media/series-sonarr/Brassic`). Рассинхрон раскладки.
Дамп: `/tmp/arr-backup-20260922-215428/` (6 JSON, очереди обеих — 0).
## Сверка копий Кра́кен ↔ TrueNAS (2026-09-22)
@@ -3512,7 +3575,7 @@ Chaos Walking 58,36 · Oldeuboi 28,65 · Начало 24,25 · Whiplash 23,66 ·
## ⏳ Осталось добить (2026-09-22)
### 0. ✅ Удаление медиа на Кра́кене — список УТВЕРЖДЁН, ждёт ответа по Transmission
### 0. 🟡 Удаление медиа на Кра́кене — выполнено 2 из 6 шагов
Инвентаризация: [[personal/plans/kraken-media-inventory-cleanup]].
802 файла / 233 позиции / 1236 ГБ. Свободно 477 ГБ.
@@ -3520,17 +3583,43 @@ Chaos Walking 58,36 · Oldeuboi 28,65 · Начало 24,25 · Whiplash 23,66 ·
**Утверждено Alex'ом: 111 позиций, 828,3 ГБ** — фильмы полный метр (62 / 485,9 ГБ),
сериалы все (5 / 119,7 ГБ), мультфильмы с копией на TrueNAS (14 / 30,1 ГБ),
мультфильмы полный метр без копии (30 / 192,6 ГБ). Короткометражки `cartoons`
<0,8 ГБ (72 поз. / 21,7 ГБ) — **оставить**.
<0,8 ГБ (72 поз. / 21,7 ГБ) — **оставить**. Плюс: «C [Transmission] — целиком»,
недокачанные — тоже сносить.
**Порядок:** дамп API Radarr/Sonarr → стоп Transmission → чистка раздач A+C →
удаление файлов → **rescan Radarr/Sonarr/Jellyfin** → проверка df/docker →
приёмка Alex'ом → доки + коммит.
**Открытый вопрос:** категория C Transmission — удалять все 204 раздачи, или только
те, что соответствуют 111 позициям? Второе аккуратнее.
| Шаг | Статус |
|---|---|
| 1. Дамп API | ✅ `/tmp/arr-backup-20260922-215428/` |
| 2. Стоп Transmission | ✅ `Exited (0)` |
| 3. Чистка раздач (240) | ⏳ план готов, `/tmp/tr-remove-ids.txt` |
| 4. Удаление файлов | ⏳ **манифест готов: 41 путь / 693,3 ГБ**, ждёт 2 ответа |
| 5–6. Rescan + приёмка | ⏳ не начаты |
**Манифест удаления:** `/tmp/delete-manifest.txt` — 4 папки целиком
(`movies`, `movies-radarr`, `series`, `series-sonarr`) + 37 папок мультфильмов.
Все пути проверены `-e`, отсутствующих 0. Состав `movies`/`movies-radarr`
сверен с утверждённым списком — 51 + 11 позиций, лишнего нет.
⚠️ **Два открытых вопроса блокируют шаг 4:**
1. Добавить 7 пропущенных папок мультфильмов (42,1 ГБ) → 735,4 ГБ вместо 693,3?
Пропущены из-за несовпадения имён: `смешарики. новый сезон. 2020`,
`Corpse.Bride.2005`, `Тайна третьей планеты (1981)`, `чебурашка`,
`The.Super.Mario.Bros.Movie.2023`, `the.secret.life.of.pets.(480p)`.
2. `documentaries-series` (235,6 ГБ) и `documentaries` (71,9 ГБ) — не в списке,
копий на TrueNAS нет. Точно оставляем?
⚠️ **В `movies/` есть «сироты»** — `.nfo`/`.srt`/постеры без видео от ранее
удалённых фильмов (`Master.i.Margarita.2023`, `Pchelovod.2024`,
`Планета обезьян Новое царство_2024`, `Леон (авторская версия)`,
`Самолетом, поездом, машиной (1987)`, `Ворон_2024`). Инвентарь (только видеофайлы)
их не видел. Удалять вместе с папкой — правильно.
⚠️ Стект-директории (`movies-radarr`, `series-sonarr`) удалять только через API,
иначе Radarr держит фантом.
иначе Radarr держит фантом. **Решение Alex по факту: удаляем файлами** (манифест
целыми папками), rescan после — обязателен.
### 1. 5 фильмов с Кинопоиск-ID — «здесь пусто», без постера
@@ -83,6 +83,30 @@ related:
`cartoons-series` = 1 сборник. 307 ГБ доксериалов/документалок Кра́кена уникальны.
23. ⚠️ **Jellyfin на Кра́кене (`:8096`) может смотреть в `media/`** — проверить библиотеки
до удаления, rescan после. Это единственная реальная связь `media/` с просмотром.
24. 🔴 **Radarr/Sonarr API: обязателен префикс `UrlBase` + `-L`.** `curl :7878/api/v3/...`
→ **HTTP 307 с ПУСТЫМ телом** (0 байт в дампе) — выглядит как «API лежит / ключ неверный».
Правильно: `curl -sL -H "X-Api-Key: $KEY" "http://127.0.0.1:7878/radarr/api/v3/movie"`
(и `/sonarr` для аналогичного). `UrlBase` в `config/config.xml`. Диагностика:
`curl -o /dev/null -w "%{http_code}"` → `307`. Скрипт: `/tmp/step1c.sh`.
25. 🔴 **У Sonarr 9 из 13 сериалов — фантомы** (записи без файлов): `Magical Police
Department`, `The Meeting Place Cannot be Changed`, `MOZU`, `Delicious in Dungeon`,
`Double or Quits`, `Severance`, `Futurama`, `True Detective`, `Brassic`.
Файлы есть только у `Our Flag Means Death`, `Stranger Things`, `The Cyberfarm`,
`Rick and Morty`. Рассинхрон раскладки, не ошибка чтения.
26. 🔴 **После `docker stop transmission` RPC недоступен** — править состояние через
bind-mount `/srv/.../docker/transmission/` (`torrents/`, `resume/`, `settings.json`).
27. 🔴 **Правила чистки раздач (утверждено Alex'ом):** `error==3` (data missing) → снести;
`downloadDir` под удаляемые папки → снести **ЦЕЛИКОМ**; `status==0` и `percentDone<1`
(недокачанные) → снести. Итог 2026-09-22: **240 снести / 1769 ГБ, 9 оставить**.
28. 🔴 **Манифест удаления строится целыми папками** — `movies`, `movies-radarr`, `series`,
`series-sonarr` по одной строке каждая + папки мультфильмов. Перед этим сверить состав
папки с утверждённым списком (51 + 11 позиций — совпало).
⚠️ **Инвентарь видит только видеофайлы** — `.nfo`/`.srt`/постеры от ранее удалённых
фильмов (`Master.i.Margarita.2023`, `Pchelovod.2024`, `Леон`, `Ворон_2024`) в манифест
попадают «бонусом». Это правильно, но выглядит шире списка.
⚠️ **Расхождение итога с утверждённой суммой = несовпадение имён папок.** 693 ГБ вместо
828 ГБ — 7 папок мультфильмов не сматчились буквально. Всегда `[ -e "$path" ]` каждую
строку + печатать `du -sb` построчно.
## Установка Lampa на ТВ (сжато)