[2026-09-23] eagle: family/how-to/htpc-webos-luna.md family/how-to/kraken-network.md family/how-to/rasputin-router.md personal/plans/kraken-media-inventory-cleanup.md personal/tech/radarr-sonarr-phantom-records.md personal/tech/skill-lampac-kraken-deploy.md
This commit is contained in:
1 parent
de1d2fd93b
commit
5deb31f01f
6 files changed
+376
-28
No files matched your search
@@ -6,7 +6,7 @@ related:
|
||||
- '[[personal/plans/lampac-kraken]]'
|
||||
- '[[personal/tech/lampac-deployment]]'
|
||||
- '[[personal/tech/kraken-truenas-media-copies]]'
|
||||
status: deleted-765gb-done-fixing-arr-phantoms
|
||||
status: deleted-765gb-done-arr-phantoms-cleared-jellyfin-rescan-pending
|
||||
tags:
|
||||
- kraken
|
||||
- media
|
||||
@@ -16,6 +16,9 @@ tags:
|
||||
- disk-space
|
||||
- transmission
|
||||
- truenas
|
||||
- radarr
|
||||
- sonarr
|
||||
- jellyfin
|
||||
title: Кра́кен — инвентаризация медиа под удаление
|
||||
type: plan
|
||||
updated: '2026-09-22'
|
||||
@@ -26,8 +29,15 @@ updated: '2026-09-22'
|
||||
> Итог: **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)
|
||||
|
||||
@@ -598,25 +608,114 @@ Lampa **не участвуют**. Поэтому 24 «watchlist»-фильма
|
||||
- [x] **Шаг 6b-2 — удалить раздачи из Transmission** ✅ **249 → 9** (три прохода, см. «Шаг 3»)
|
||||
- [x] **Шаг 6c — удаление файлов** ✅ **693 ГБ**, диск 477 ГБ → 1,2 ТБ свободно
|
||||
- [x] **Шаг 6d — rescan Radarr/Sonarr** ✅ выполнен (фантомы остались — см. 5b)
|
||||
- [ ] **Шаг 6e — снять фантомы arr (409)** ⏳ ждёт выбора Alex'а из 3 путей
|
||||
- [ ] Шаг 6f — приёмка Alex'ом (`df`, Jellyfin, UI)
|
||||
- [ ] Шаг 6g — обновить доки + коммит
|
||||
- [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` (побочный артефакт, см. ниже)
|
||||
|
||||
## 🎯 ГДЕ МЫ СЕЙЧАС (для следующей сессии)
|
||||
|
||||
**Медиа удалено (693 ГБ). Transmisson чист (9 раздач). Остались фантомы в arr-стеке.**
|
||||
**Медиа удалено (765 ГБ), Transmission чист (9 раздач), arr-фантомы СНЯТЫ.**
|
||||
Диск: **511 ГБ занято / 1,2 ТБ свободно.**
|
||||
|
||||
Чтобы продолжить:
|
||||
1. Получить от Alex выбор из 3 путей решения 409 (см. «Пути решения» выше).
|
||||
Рекомендация — путь 1, скрипт `/tmp/step10_fix.sh` готов.
|
||||
2. Если путь 1: `bash /tmp/step10_fix.sh` → проверить, что `hasFile` = 0 у всех.
|
||||
3. Проверить библиотеки Jellyfin (`:8096`) — смотрит ли он в `media/`.
|
||||
4. Приёмка Alex'ом → коммит vault.
|
||||
Осталось ровно два пункта:
|
||||
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`)
|
||||
и пустой ответ. Ключи: `<ApiKey>` в `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 папок мультфильмов).
|
||||
Внутренний отбор не пофайловый, а по целым папкам.
|
||||
|
||||
Reference in new issue
Block a user