--- created: '2026-09-22' namespace: personal related: - '[[personal/plans/lampac-watchlist-plugin]]' - '[[personal/plans/lampac-kraken]]' - '[[personal/tech/lampac-deployment]]' - '[[personal/tech/kraken-truenas-media-copies]]' status: deleted-765gb-done-arr-phantoms-cleared-jellyfin-rescan-pending tags: - kraken - media - cleanup - watchlist - lampac - disk-space - transmission - truenas - radarr - sonarr - jellyfin title: Кра́кен — инвентаризация медиа под удаление type: plan updated: '2026-09-22' --- # Кра́кен — инвентаризация медиа под удаление > Составлен 2026-09-22. Alex: «вообще все. нужна полная инвентаризация что можно сносить, а что нельзя». > Итог: **802 файла, 233 позиции, 1 236 ГБ.** В watchlist (Lampa покажет) — 29 позиций / 456 ГБ. > Не в watchlist — 204 позиции / 780 ГБ. **Точных дублей — 46 групп, зря занято 89,2 ГБ.** > > ✅ **ВЫПОЛНЕНО 2026-09-22: освобождено 765 ГБ.** Диск 1,3 ТБ → **511 ГБ занято / 1,2 ТБ свободно**. > Transmission **249 → 9** раздач. Arr-фантомы сняты (Radarr 12 → 0, Sonarr 57 → 0). > Осталось: **rescan Jellyfin** + уборка `/Users/admin/personal/`. > > 🔴 **Цифры watchlist-матча ЗАНИЖЕНЫ — требует пересчёта.** Alex поймал 4 позиции, > ошибочно записанные в «не в watchlist», хотя они В watchlist (см. раздел «Матч»). > > 🔴 **Lampa играет с торрентов, НЕ с диска Кра́кена** (TorrServer `UseDisk: false`). > Файлы в `media/` в воспроизведении Lampa не участвуют — снос их Lampa не ломает. ## 🔴 Ошибка матча (найдена Alex'ом 2026-09-22) Первый прогон сравнивал имя файла **только с русским `name`** watchlist-позиции. Файлы, названные по **оригиналу**, не находились. Промахи: | Файл на диске | ГБ | В watchlist | Русское `name` | TMDB | |---|---|---|---|---| | `Bram.Stoker's Dracula.1992` | 18.04 | ✅ | «Дракула» | 6114 | | `The.Crow.1994` | 17.45 | ✅ | «Ворон» | 9495 | | `despicable.me.4.2024` | 2.18 | ✅ | «Гадкий я 4» | 519182 | | `Вивариум_2019_BDRip` | 1.46 | ✅ | «Вивариум» | 458305 | **27,3 ГБ записано как «не в watchlist» ошибочно — эти 4 сносить НЕЛЬЗЯ.** Правильно матчить против **обоих** полей (`name` И `original`) + **год ±1**. Год обязателен: в watchlist «Дракула» стоит трижды (1992 / 2014 / 2025), а `inside out (2015)` ложно матчится с «Головоломка 2» (2024) — разные фильмы. ⚠️ `Oldboy` (28.65 ГБ) и `Project Hail Mary` (28.12 ГБ) — **проверены отдельно, их в watchlist правда НЕТ** (0 совпадений по обоим запросам в `watchlist.json`). Они в Radarr, но в список не занесены. Это не ошибка матча. Полный список перепроверки: `/Users/admin/kraken-missed-matches.json`. Скрипты: `/tmp/kraken_fix2.py` (фразовое равенство по `original` + год), `/tmp/kraken_why.py` (проверка конкретных тайтлов). ## Метод 1. `find` по `/srv/...6194539b.../media` → 802 видеофайла с размерами. 2. Группировка в «позиции»: папка первого уровня + подпапка; файлы в корне — каждая своя позиция; `downloads/*` — по полному пути папки-раздачи (сезонные паки). 3. Сверка с `watchlist.json` (376 позиций). Первый прогон — строгое равенство по русскому `name` (убраны год, качество, релиз-группа, расширение, транслит-шум). Подстрочный матч давал ложные срабатывания: единственный файл 1.46 ГБ «Вивариум» склеивался в группу на 135 ГБ. ⚠️ **Строгое равенство по `name` тоже неполно** — пропускает файлы, названные по оригиналу. Проверять против `name` И `original`, со сверкой года. Детали и промахи — в разделе «Ошибка матча» выше. 4. TMDB-ID брался из `href` вида `https://www.themoviedb.org/movie/NNN` — в `watchlist.json` его отдельным полем нет. Артефакты на Mac: `/Users/admin/kraken-inventory.json` (полные данные), `kraken-inventory.csv` (таблица), `kraken-dupes.json` (дубли), `kraken-table-AB.md`. ## Сводка | Папка | В watchlist | Не в watchlist | |---|---|---| | `movies` | 14 / 163.0 ГБ | 37 / 146.7 ГБ | | `movies-radarr` | 8 / 108.8 ГБ | 3 / 67.4 ГБ | | `series-sonarr` | 3 / 105.0 ГБ | 1 / 11.1 ГБ | | `downloads` | 1 / 13.8 ГБ | 4 / 64.8 ГБ | | `documentaries-series` | 0 | 20 / 235.6 ГБ | | `documentaries` | 0 | 25 / 71.9 ГБ | | `cartoons-series` | 1 / 51.3 ГБ | 17 / 53.3 ГБ | | `cartoons` | 2 / 14.0 ГБ | 96 / 125.8 ГБ | | `series` | 0 | 1 / 3.6 ГБ | 🔴 **Radarr/Sonarr индексируют только 252 ГБ из 1 236.** Этой рухляди нет в стеках. ## 🔴 Главная находка: дубли `downloads/complete` (89,2 ГБ) `downloads/complete/sonarr/` — **завершённые раздачи, не удалённые после импорта**. Файлы совпадают с библиотекой **по имени и размеру байт-в-байт**: | Раздача в `downloads/complete` | ГБ | Копия в библиотеке | |---|---|---| | `Stranger Things.s04...` | 13.06 | `series-sonarr/Stranger Things/Season 4` | | `Очень странные дела.S03...` | 21.33 | `series-sonarr/Stranger Things/Season 3` | | `Our.Flag.Means.Death.S01` | 19.31 | `series-sonarr/Our Flag Means Death/Season 1` | | `Our.Flag.Means.Death.S02` | 13.81 | `series-sonarr/Our Flag Means Death/Season 2` | | `Kiberderevnya.S01` | 11.11 | `series-sonarr/The Cyberfarm/Season 1` | | `Life.Is.Beautiful.1997` | 10.62 | `movies-radarr/Life Is Beautiful (1997)` × `cartoons/life is beautiful` | 🔴 **`Life Is.Beautiful` лежит ТРИ раза** — `movies-radarr` + `cartoons` + третья копия. Это уже не staging, а свалка: фильм в `cartoons` — ошибка раскладки. → `downloads/complete` (78,6 ГБ) — **удалять целиком, если в библиотеке 24 ГБ S03 не нужны** (см. ниже про ложный дубль S03). ## Ложный дубль: Stranger Things S03 `downloads/complete/.../Очень странные дела.S03...` и `series-sonarr/Stranger Things/Season 3` совпадают байт-в-байт. Но в `series-sonarr` **отсутствует S01** и есть только S02–S04 — то есть S03 в библиотеке **начал формироваться из этой же раздачи**. Удалять `downloads`-копию можно, но только убедившись, что Sonarr видит S03 как отсутствующий/присутствующий. ## A. В WATCHLIST — Lampa покажет (29 позиций, 456.0 ГБ) — НЕ сносить | Тайтл на диске | Папка | Файлов | ГБ | TMDB | Название в watchlist | |---|---|---|---|---|---| | Stranger Things | `series-sonarr` | 25 | 67.92 | 66732 | Очень странные дела | | смешарики webrip 1080p | `cartoons-series` | 210 | 51.32 | 107, 402 | сборник (ложный матч по частям) | | Our Flag Means Death | `series-sonarr` | 18 | 33.12 | 109939 | Наш флаг означает смерть | | Whiplash (2014) | `movies-radarr` | 1 | 23.66 | 244786 | Одержимость | | секретный агент | `movies` | 1 | 21.51 | 1220564 | Секретный агент | | семья в аренду | `movies` | 1 | 19.91 | 1208348 | Семья в аренду | | The Drama (2026) | `movies-radarr` | 1 | 19.16 | 1325734 | Вот это драма! | | отпуск на двоих | `movies` | 1 | 17.85 | 1034716 | Отпуск на двоих | | They Will Kill You (2026) | `movies-radarr` | 1 | 17.24 | 1292695 | Они придут за тобой | | под огнём | `movies` | 1 | 16.50 | 1241436 | Под огнём | | я ругаюсь | `movies` | 1 | 15.82 | 1317149 | Я ругаюсь | | Our.Flag.Means.Death.S02 (дубль) | `downloads` | 8 | 13.81 | 109939 | Наш флаг означает смерть | | гадкая сестра | `movies` | 1 | 13.50 | 1284120 | Гадкая сестра | | сират | `movies` | 1 | 13.39 | 1151272 | Сират | | охота на воров 2: пантера | `movies` | 1 | 13.28 | 604685 | Охота на воров 2: Пантера | | американская история x | `movies` | 1 | 12.80 | 73 | Американская история X | | Scream (1996) | `movies-radarr` | 1 | 12.39 | 4232 | Крик | | Dead Poets Society (1989) | `movies-radarr` | 1 | 12.28 | 207 | Общество мёртвых поэтов | | Leave No Trace (2018) | `movies-radarr` | 1 | 11.06 | 443463 | Не оставляй следов | | the.iron.giant.1999... | `cartoons` | 1 | 10.61 | 10386 | Стальной гигант | | Funhouse (2019) | `movies-radarr` | 1 | 8.87 | 590009 | Эксперимент «За стеклом» | | смерть единорога | `movies` | 1 | 7.97 | 1153714 | Смерть Единорога | | список заветных желаний | `movies` | 1 | 5.88 | 1254786 | Список заветных желаний | | Mortal Kombat II (2026) | `movies-radarr` | 1 | 4.15 | 931285 | Мортал Комбат 2 | | Rick and Morty | `series-sonarr` | 4 | 3.98 | 60625 | Рик и Морти | | Тайна третьей планеты (1981) | `cartoons` | 1 | 3.38 | 49802 | Тайна третьей планеты | | Van Helsing (2004) Fullscreen DVDRip | `movies` | 1 | 2.94 | 7131 | Ван Хельсинг | | Death.on.the.Nile.2022.HDRip | `movies` | 1 | 1.46 | 505026 | Смерть на Ниле | | гладиатор | `movies` | 1 | 0.22 | 98 | Гладиатор | 🔴 **Список НЕПОЛНЫЙ — минимум 4 позиции пропущены матчем** (перечислены в разделе «Ошибка матча»): `Bram.Stoker's Dracula.1992` (18.04), `The.Crow.1994` (17.45), `despicable.me.4.2024` (2.18), `Вивариум_2019` (1.46). Итого реально в watchlist **≥33 позиции / ≥483 ГБ**. После пересчёта таблицу заменить. ⚠️ **«смешарики webrip 1080p»** — 210 файлов в одной папке. Это сборник; совпадения с watchlist (TMDB 107/402) — артефакт нормализации по отдельным файлам, не реальный матч. Разобрать отдельно, если позиция пойдёт под нож. ⚠️ **В watchlist нет ни одного тайтла из `documentaries*`** — 45 позиций / 307 ГБ лежат вне списка. ## B. НЕ В WATCHLIST (204 позиции, 780.1 ГБ) Полная таблица всех 204 строк — в артефактах (`kraken-inventory.csv`). Здесь — верхушка по размеру, остальное `cartoons` по 0,04–3 ГБ (советская анимация). ### B1. Дубли `downloads/complete` — 78,6 ГБ (удалять первыми) | Раздача | ГБ | Копия есть? | |---|---|---| | `Очень странные дела.S03.WEB-DL.1080.HDR` | 21.33 | ✅ в `series-sonarr` | | `Our.Flag.Means.Death.S01.2022...` | 19.31 | ✅ в `series-sonarr` | | `Our.Flag.Means.Death.S02.WEBDL...` | 13.81 | ✅ в `series-sonarr` | | `Stranger Things.s04.WEB-DL(HEVC)...` | 13.06 | ✅ в `series-sonarr` | | `Kiberderevnya.S01.2023...` | 11.11 | ✅ в `series-sonarr` (`The Cyberfarm`) | ### B2. Не в watchlist, не дубли — крупное (кандидаты) | Тайтл | Папка | ГБ | Комментарий | |---|---|---|---| | Prehistoric.Planet.2022.S01 + S02 | `documentaries-series` | 37.45 + 17.36 | доксериал | | пингвины. шпион в толпе | `documentaries-series` | 34.75 | доксериал | | Oldboy (2003) | `movies-radarr` | 28.65 | в Radarr, не в watchlist | | Project Hail Mary (2026) | `movies-radarr` | 28.12 | в Radarr, не в watchlist | | смешарики. новый сезон. 2020 | `cartoons-series` | 26.43 | 113 эпизодов | | жизнь птиц 1998 | `documentaries-series` | 20.59 | доксериал | | маленькие гиганты 2014 | `documentaries` | 20.57 | | | кот в сапогах 2011 | `cartoons` | 19.92 | | | the secret life of elephants | `documentaries-series` | 19.90 | доксериал | | ~~Bram.Stoker's Dracula.1992~~ | `movies` | 18.04 | 🔴 **В WATCHLIST** — «Дракула» 1992, TMDB 6114 | | ~~The.Crow.1994~~ | `movies` | 17.45 | 🔴 **В WATCHLIST** — «Ворон», TMDB 9495 | | гиганты моря 2011 | `documentaries-series` | 16.40 | доксериал | | tiger spy in the jungle s01 | `documentaries-series` | 16.30 | доксериал | | it was just an accident | `movies` | 12.78 | | | F1.The.Movie.2025 | `movies` | 11.99 | | | король лев (1994) | `cartoons` | 11.97 | | | The Cyberfarm | `series-sonarr` | 11.11 | в Sonarr, не в watchlist | | Life Is Beautiful (1997) | `movies-radarr` + `cartoons` | 10.62 × 2 | 🔴 дубль | | Brassic S01 | `series` | 3.62 | | | ну, погоди! | `cartoons-series` | 3.74 | 18 выпусков | ### B3. `cartoons` — 96 позиций, 125,8 ГБ Советская и зарубежная анимация, преимущественно 1944–1990, файлы 0,04–3 ГБ. В watchlist их нет. Список целиком — в CSV. ## ✅ РЕШЕНИЕ ALEX: список на снос УТВЕРЖДЁН (2026-09-22) Alex подтвердил все три вопроса: группа 4 (копий нет) — сносим, сериалы — целиком, короткометражки — оставить. Плюс отдельное указание: > «не забудь почистить transmission сначала - все что сейчас data missing + все что удаляется» ### Утверждённый список — 111 позиций, 828,3 ГБ | № | Группа | Позиций | ГБ | |---|---|---|---| | 1 | Фильмы (полный метр) — `movies` + `movies-radarr` | 62 | 485,9 | | 2 | Сериалы (все) — `series` + `series-sonarr` | 5 | 119,7 | | 3 | Мультфильмы — есть копия на TrueNAS | 14 | 30,1 | | 4 | Мультфильмы полный метр (≥0,8 ГБ), копии нет | 30 | 192,6 | | | **ИТОГО** | **111** | **828,3** | **НЕ в списке:** короткометражки `cartoons` <0,8 ГБ — 72 позиции, 21,7 ГБ (ёжик в тумане, мойдодыр, чиполлино и пр.) — оставлены по решению Alex. Артефакт: `/Users/admin/kraken-delete-draft.json` Скрипт классификации: `/tmp/kraken_del.py` ### Сверка с TrueNAS — сделана Доксериалы/документалки копий **не имеют** (307 ГБ уникальны). Мультфильмы — копия есть у ~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`. ## ✅✅ ВЫПОЛНЕНО 2026-09-22 (ночь) — УДАЛЕНО 693 ГБ, диск 477 ГБ → 1,2 ТБ > 🔴 **Раздел ниже («ШЕСТЬ ШАГОВ — ВЫПОЛНЕНО 4 из 6») описывает состояние ДО удаления.** > Фактически выполнены шаги 3, 4, 5, 6a. Актуальный статус — здесь. ### Итог | Метрика | До | После | |---|---|---| | `df` занято | 1,3 ТБ | **511 ГБ** | | `df` свободно | 477 ГБ | **1,2 ТБ** | | Transmission раздач | 249 | **9** | **Освобождено 765 ГБ.** ### Что удалено (41 путь) | Путь | ГБ | |---|---| | `media/movies` | 309,69 | | `media/movies-radarr` | 234,59 | | `media/series-sonarr` | 116,14 | | `media/series` | 3,62 | | 37 папок мультфильмов (группы 3+4) | 168,3 | | **ИТОГО** | **~832** | Лог удаления: `/tmp/delete-log-20260922-215821.txt` (на Кра́кене). Скрипты: `/tmp/step6_delete.sh` (удаление с логом), `/tmp/step7_sudo.sh` (добивание каталогов). ### Финальное состояние `media/` ``` .recyclebin cartoons cartoons-series documentaries documentaries-series downloads music ``` Осталось: `documentaries` (71,9 ГБ) · `documentaries-series` (235,6 ГБ) · `downloads` (78,6 ГБ) · короткометражки `cartoons`/`cartoons-series`. ### ✅ Шаг 3 — чистка Transmission ВЫПОЛНЕН **249 → 9 раздач.** Метод: контейнер **остановлен**, но удаление сделано через RPC (поднял `docker start`, отправил `torrent-remove`, контейнер остаётся работать). ```bash curl -s -X POST "$TS" -H "X-Transmission-Session-Id: $SID" -H 'Content-Type: application/json' \ -d '{"method":"torrent-remove","arguments":{"ids":[<240 id>],"delete-local-data":false}}' ``` 🔴 **`"delete-local-data": false`** — снимает раздачу со списка, файлы не трогает. Файлы удалены отдельным шагом (шаг 4). 🔴 **Питфолл: Transmission ПЕРЕСОЗДАЁТ раздачи с новыми id.** После первого `torrent-remove` на 240 id осталось **17, а не 9** — 8 раздач вернулись с новыми id (223, 233, 234, 236, 238, 241, 244, 247). Долечены вторым проходом **по `downloadDir`**, затем третьим — `Babylon` (`/downloads/radarr`, префикс не попал в фильтр). **Вывод:** чистить не по id, а **по `downloadDir`**, и проверять счётчик после каждого прохода до сходимости. Скрипты: `/tmp/step4_tr_remove.sh` (по id), `/tmp/step5_tr_clean2.sh` (по downloadDir), добивание `Babylon` id=236. ### ✅ Шаг 4 — удаление файлов ВЫПОЛНЕН 41 путь из `/tmp/delete-manifest.txt`. Скрипт с защитой: **отказ при числе строк ≠ 41**. 🔴 **Питфолл: каталоги верхнего уровня требуют `sudo`.** Первый прогон удалил всё содержимое, но 4 каталога вернули `Permission denied`: ``` rm: cannot remove '.../media/movies': Permission denied ``` Причина: сами каталоги `root:root`, хотя содержимое `kraken:kraken`. Второй прогон `sudo rmdir` — сработал (каталоги к тому моменту были пусты). **Ошибка в скрипте:** не различал «не удалить содержимое» и «не удалить каталог». Проверять оба уровня: содержимое — `rm -rf`, сам каталог — `sudo rmdir`. ### ✅ Шаг 5 — rescan ВЫПОЛНЕН, но фантомы остались ```bash curl -sL -X POST -H "X-Api-Key: $RKEY" -H 'Content-Type: application/json' \ -d '{"name":"RescanMovie"}' "http://127.0.0.1:7878/radarr/api/v3/command" curl -sL -X POST -H "X-Api-Key: $SKEY" -H 'Content-Type: application/json' \ -d '{"name":"RescanSeries"}' "http://127.0.0.1:8989/sonarr/api/v3/command" ``` Rescan **не почистил** — файлы исчезли ДО скана, трекеры приросли к старым записям: | Стек | Фантомов | |---|---| | Radarr | **12 фильмов** «с файлами» | | Sonarr | **57 эпизодов** (Our Flag Means Death 18, Stranger Things 25, Cyberfarm 10, Rick and Morty 4) | Jellyfin: `/health` → **302** (жив). ### 🔴 Шаг 5b — фантомы arr: `DELETE` падает с 409 (НЕ ЗАКРЫТО) Попытка снять записи через API: ```bash curl -sL -X DELETE -H "X-Api-Key: $RKEY" "$R/api/v3/moviefile/$FID" # → 409 curl -sL -X DELETE -H "X-Api-Key: $SKEY" "$S/api/v3/episodefile/$EID" # → 409 ``` Тело ответа: ```json {"message":"Movie's root folder (/media/movies-radarr) doesn't exist.", "description":"NzbDrone.Core.Exceptions.NzbDroneClientException: ... MediaFileDeletionService.cs:line 59"} ``` ``` Warn|DiskScanService|Movie's root folder (/media/movies-radarr) doesn't exist. Warn|MediaFileDeletionService|Series' root folder (/media/series-sonarr) doesn't exist. ``` 🔴 **Причина: Radarr/Sonarr хранят `rootfolder` в своей БД.** Папку удалили → `MediaFileDeletionService` отказывается работать с файловыми записями. ⚠️ У **Radarr список rootfolders теперь ПУСТ** (API вернул ничего). У Sonarr остался `/media/series-sonarr` (id=1). **Все DELETE вернули 409 — ни одна запись не удалена.** ### Пути решения (предложены Alex'у, ответа нет) 1. **Пересоздать пустые root-папки → удалить записи через API → убрать папки.** `mkdir -p /media/{movies-radarr,series-sonarr}` → DELETE работает → `sudo rmdir`. Файлы не возвращаются. **~5 минут.** *(Рекомендовано.)* 2. **Оставить фантомы.** На диск и Lampa не влияют, но при следующем скачивании стек скажет «root folder doesn't exist» — надо добавлять новую папку в UI. 3. **Вручную через UI** — снести root folder в Settings → Root Folders, пересоздать. Готовый скрипт для пути 1: `/tmp/step10_fix.sh` (создаёт папки → DELETE все фантомы → удаляет временные папки). **Не запускался.** ### Осталось - [ ] **Шаг 5b** — снять 12 + 57 фантомных записей (ждёт решения Alex'а по трём путям выше) - [ ] **Шаг 6** — приёмка Alex'ом (`df`, Jellyfin, UI) - [ ] **Шаг 6f** — коммит vault - [ ] Проверить библиотеки Jellyfin (команда ушла в таймаут апрува, не выполнена) - [ ] Уборка: `rm -rf /Users/admin/personal` (артефакт записи по относительному пути) ## ⏸ Архив: состояние ДО удаления (см. выше актуальное) ### Шаг 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-*`). 2. **Стоп `transmission`** — чтобы не качал в удаляемые папки. 3. **Чистка Transmission** — удалить раздачи категорий A (data missing) и C (в списке на снос). См. раздел «Transmission» ниже. 4. **Удаление файлов** по 111 позициям — список путей, `xargs rm`, лог каждой позиции. 5. **Rescan** библиотек Radarr/Sonarr (**с ресканом** — указание Alex) + Jellyfin. 6. **Проверка:** `df -h` до/после, `docker ps`, Jellyfin `/health`. Затем приёмка Alex'ом. ## Transmission — состояние на 2026-09-22 (249 раздач, 1,92 ТБ заявлено) RPC: `http://127.0.0.1:9091/transmission/rpc`, **авторизация не требуется** (`rpc-authentication-required: false`). Нужен session-id из заголовка — забирать через `curl -i` и повторять POST с `X-Transmission-Session-Id`. | Кат. | Раздач | ГБ | Что | |---|---|---|---| | **A. data missing** | 21 | 561,6 | `No data found` — файлов нет, раздачи остались | | **B. no space** | 8 | 88,8 | `Unable to save resume file: No space left on device` | | **C. в списке на снос** | 204 | 1005,6 | путь под удаление | | **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 · Scream 12,39 · Dead Poets Society 12,28 · Leave No Trace 11,06 · Funhouse 8,87 · Мортал Комбат 2 4,15 · + 7 мелких Также 6 раздач без файлов в `downloads/complete/radarr` и `downloads/radarr` (9–98 ГБ). Это «мёртвый вес» в списке — удалять из Transmission без потерь. ### ✅ РЕШЕНИЕ ALEX по категории C и недокачанным (2026-09-22) > «да. плюс недакачанные если в transmission есть останавливай и тоже сноси. C - целиком» Правила удаления раздач (утверждены): ``` 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 '[^<]+' /config.xml | sed 's///'` (32 символа). Без `-L` и без префикса ответ пустой — легко принять за «API лежит». Скрипт: `/tmp/step1c.sh` ### 🔴 TorrServer/Lampa к `media/` отношения не имеют Проверено 2026-09-22 (`/ts/settings` на `:9118`): ``` UseDisk: false → на диск не пишет TorrentsSavePath: "" → папки для сохранения нет CacheSize: 100663296 → 96 МБ, только RAM ``` **Lampa играет с торрентов напрямую.** Файлы в `media/` на Кра́кене в воспроизведении Lampa **не участвуют**. Поэтому 24 «watchlist»-фильма в списке на снос — не потеря для Lampa. Alex: «она же не с кракена играет! ... она с торрентов играет». ⚠️ **Мой ранний вывод «снесёшь то, что играет в Lampa» был НЕВЕРЕН** — исправлено. ⚠️ **Но:** на Кра́кене работает **Jellyfin** (`:8096`, Up). Если он смотрит в `media/` — снос ломает его библиотеку. Rescan Jellyfin в шаге 5 обязателен; перед удалением проверить библиотеки Jellyfin (команда ушла в таймаут апрува, не выполнена). ## Что дальше Удаление — **отдельный шаг, ждёт решения Alex'а по конкретным позициям.** Правила при удалении: 1. `downloads/complete` — самый безопасный первый кандидат (78,6 ГБ, всё есть в библиотеке). 2. `Life Is Beautiful` — снести две лишние копии из трёх, оставить одну. 3. `movies-radarr`/`series-sonarr` — если удалять, то через API (иначе Radarr будет держать фантом). `deleteFiles=true` проверять, что путь внутри библиотеки. 4. Дамп `radarr`/`sonarr` API в файл перед любой операцией. ## Статус - [x] Шаг 1 — выгрузка списка (802 файла) - [x] Шаг 2 — группировка (233 позиции) - [x] Шаг 3 — сверка с watchlist (29 в списке / 204 нет) — ⚠️ **ЦИФРА НЕВЕРНА, см. «Ошибка матча»** - [x] Шаг 4 — `missing.json`: **0 совпадений** среди файлов (те 30 позиций — рукописные заметки) - [x] Шаг 5 — таблица (этот документ) - [x] Шаг 5b — пересчёт матча по `name` + `original` (найдено 4 промаха, +27,3 ГБ) - [x] **Сверка с TrueNAS** — доксериалы/документалки копий не имеют (307 ГБ уникальны) - [x] **Список на снос утверждён Alex'ом** — 111 позиций, 828,3 ГБ - [x] **Диагностика Transmission** — 249 раздач, классифицированы - [x] **Шаг 6a — дамп API Radarr/Sonarr** ✅ `/tmp/arr-backup-20260922-215428/` - [x] **Шаг 6b — стоп Transmission** ✅ `Exited (0)`; план чистки: 240 раздач, 1769 ГБ - [x] **Шаг 6b-2 — удалить раздачи из Transmission** ✅ **249 → 9** (три прохода, см. «Шаг 3») - [x] **Шаг 6c — удаление файлов** ✅ **693 ГБ**, диск 477 ГБ → 1,2 ТБ свободно - [x] **Шаг 6d — rescan Radarr/Sonarr** ✅ выполнен (фантомы остались — см. 5b) - [x] **Шаг 6e — снять фантомы arr (409)** ✅ **РЕШЕНО** (путь 1, см. «Решение 409») - [x] **Шаг 6f — приёмка `df`** ✅ 511 ГБ занято / 1,2 ТБ свободно - [x] **Шаг 6g — разбор диска** ✅ см. «Что осталось на Кра́кене» - [ ] Шаг 6h — **rescan Jellyfin** ⏳ (UI вручную или API-ключ) - [ ] Шаг 6i — приёмка Alex'ом в UI → коммит vault - [ ] Уборка: `rm -rf /Users/admin/personal` (побочный артефакт, см. ниже) ## 🎯 ГДЕ МЫ СЕЙЧАС (для следующей сессии) **Медиа удалено (765 ГБ), Transmission чист (9 раздач), arr-фантомы СНЯТЫ.** Диск: **511 ГБ занято / 1,2 ТБ свободно.** Осталось ровно два пункта: 1. **Rescan Jellyfin** (`:8096`) — программно не сделан, API-ключа нет. Быстрее всего руками: Dashboard → Libraries → три точки → **Scan All Libraries** (10 секунд). Либо создать API-ключ (Dashboard → API Keys) и отдать мне. 2. **Уборка `/Users/admin/personal/`** — побочный артефакт относительного пути. ⚠️ **Манифест уже отработал — повторно не запускать.** `/tmp/delete-manifest.txt` хранится для истории; путь в нём указывает на удалённые объекты. ## ✅ Решение 409 (Radarr/Sonarr) — пусть 1, выполнено Alex выбрал путь 1. Понадобилось **два** подхода, потому что 409 менял причину: | Попытка | Ответ API | Что сделано | |---|---|---| | 1 | `Movie's root folder (/media/movies-radarr) doesn't exist` | создал пустые папки через `sudo mkdir` | | 2 | `Movie's root folder (/media/movies-radarr) is empty. Rescan` | положил заглушку `.keep` + `RescanMovie`/`RescanSeries` → **фантомы снялись сами** | 🔴 **Ключевой факт:** Radarr/Sonarr **блокируют любое изменение записей файлов (409)**, пока корневая папка отсутствует **или пуста**. `mkdir` обычным пользователем НЕ работает — `media/` принадлежит `root`, нужен `sudo mkdir` + `sudo chown kraken:kraken`. **Порядок, который сработал:** ```bash # 1. восстановить корневые папки sudo mkdir -p $M/movies-radarr $M/series-sonarr $M/movies $M/series sudo chown kraken:kraken $M/{movies-radarr,series-sonarr,movies,series} # 2. положить заглушку в КОРЕНЬ (иначе «root folder is empty») printf 'decoy' > $M/movies-radarr/.keep printf 'decoy' > $M/series-sonarr/.keep # 3. RescanMovie / RescanSeries через API — фантомы снимаются САМИ, DELETE не нужен curl -sL -X POST -H "X-Api-Key: $RKEY" -H 'Content-Type: application/json' \ -d '{"name":"RescanMovie"}' "http://127.0.0.1:7878/radarr/api/v3/command" curl -sL -X POST -H "X-Api-Key: $SKEY" -H 'Content-Type: application/json' \ -d '{"name":"RescanSeries"}' "http://127.0.0.1:8989/sonarr/api/v3/command" # 4. убрать заглушки и пустые папки sudo rm -rf $M/{movies-radarr,series-sonarr,movies,series} ``` ⚠️ **`DELETE /api/v3/moviefile/{id}` и `/episodefile/{id}` бесполезны** — они всегда отдают 409, пока корень битый. Не тратить время, сразу делать Rescan. **Итог:** Radarr `hasFile=12 → 0`, Sonarr episodeFile `57 → 0`. Скрипты: `/tmp/step10c.sh` (диагностика причины), `/tmp/step11.sh` (заглушка + rescan), `/tmp/step12.sh` (ожидание скана + уборка). 🔴 **API-ключи arr НЕ передаются через `?apikey=`** — нужен заголовок `X-Api-Key`. И **обязателен `curl -sL`**: без `-L` придёт `307` (URL base `/radarr`, `/sonarr`) и пустой ответ. Ключи: `` в `docker/{radarr,sonarr}/config/config.xml`. ## Что осталось на Кра́кене (2026-09-22, после чистки) **Занято 511 ГБ / свободно 1,2 ТБ** (`/dev/sda1`, смонтирован в `...6194539b...`). | Папка | Размер | |---|---| | `documentaries-series` | 236 ГБ | | `downloads` | 80 ГБ | | `documentaries` | 72 ГБ | | `cartoons` | 38 ГБ | | `cartoons-series` | 31 ГБ | | `music` | пусто | | **итого `media`** | **455 ГБ** | | прочее (docker, логи, БД, backups) | ~56 ГБ | Мультфильмы: было 169 ГБ → стало 69 ГБ (выжили только короткометражки `cartoons`, которые Alex не называл). Доксериалы/документалки (307,5 ГБ) — **не тронуты**, копий на TrueNAS у них нет. ## Time Machine на TrueNAS — шары НЕТ Проверено 2026-09-22: | Шара | Путь | `timemachine` | purpose | |---|---|---|---| | `old-bu` | `/mnt/RED_2TB/old-bu` | ❌ false | `DEFAULT_SHARE` | | `storage` | `/mnt/RED_2TB/storage` | ❌ false | `DEFAULT_SHARE` | | `t610` | `/mnt/RED_2TB/backup/t610` | ❌ false | `DEFAULT_SHARE` | Ни одна шара не настроена как Time Machine. Finder не увидит их как диск для резервных копий. Проверять: `midclt call sharing.smb.query | jq -r '.[] | "\(.name) tm=\(.timemachine) purpose=\(.purpose)"'`. ⚠️ `midclt` под `ssh` требует **`ssh -t`** (нужен TTY), иначе `sudo: a password is required`. Включение TM на шаре — одна правка `timemachine=true`, Alex'у не предлагалось (не спрашивал). ## ⏳ Открытый вопрос по Jellyfin Сервер жив: `/health` и `/System/Info/Public` отдают **302** (= страница логина, не «сломан»). Библиотеки в XML **не видны** — Jellyfin 10.x держит их в SQLite (`config/data/jellyfin.db`), API-ключ в конфиге не найден. `docker inspect jellyfin` → смотрит в `/media` (тот же диск). 🔴 **Программный rescan не выполнен.** Сделать рукой в UI либо создать API-ключ. До этого нельзя утверждать, что библиотека Jellyfin консистентна после сноса. ⚠️ **`rm -rf` на папки `movies`/`movies-radarr`/`series`/`series-sonarr` целиком** — именно так устроен манифест (41 путь = 4 папки + 37 папок мультфильмов). Внутренний отбор не пофайловый, а по целым папкам. ### ⚠️ Побочный артефакт, требует уборки При записи `personal/tech/kraken-truenas-media-copies.md` файл сначала создался по **относительному пути** — в `/Users/admin/personal/tech/` (вне vault). Правильная копия лежит в vault. **Каталог `/Users/admin/personal/` — удалить.** Сделать в следующей сессии: `rm -rf /Users/admin/personal` (в этом ревью terminal недоступен). ## Документация разложена | Что | Где | |---|---| | Эта таблица, метод, цифры, решение, Transmission | `personal/plans/kraken-media-inventory-cleanup.md` | | **Сверка копий Кра́кен ↔ TrueNAS** | `personal/tech/kraken-truenas-media-copies.md` | | Методика + переиспользуемые факты | `personal/tech/lampac-deployment.md`, раздел «Полная инвентаризация диска Кра́кена» | | Скилл (питфоллы 12–18) | `devops/lampac-kraken-deploy`, раздел «Pillar: disk inventory & deletion candidates» | | Зеркало скилла | `personal/tech/skill-lampac-kraken-deploy.md` |