homelab-codex-ws/docs/sessions/2026-07-07-immich-pimain-cleanup.md
oskar 510fe0b600 feat(kb): frontmatter OKF dla 39 session logow
Session logi zostaja w docs/sessions/ (decyzja z etapu 1). Dodany wylacznie
blok frontmattera: type: session-log, visibility: private, status: active,
updated = data ostatniego commita pliku.

Tresc nietknieta — kazdy plik to +9/-0 linii.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 16:58:04 +02:00

2.4 KiB

okf type visibility status updated links
0.1 session-log private active 2026-07-07

Session log 2026-07-07 — Immich upload fix / pimain cleanup (kontynuacja 2026-07-03)

Kontekst

Immich mobile: Error(500) przy uploadzie. Diagnoza z 3.07: bind mount fstab /media/pimain/media/immich/library/upload -> /home/pi/immich/library/upload (sda1, 100% pelny). Bind niewidoczny w docker inspect i compose — wykryty przez /proc/mounts w kontenerze + findmnt. NVMe/quota/inody/ext4 czyste.

Root cause zapelnienia

/media/pimain/backup-tmp/pi/ — dzienne backupy /home/pi (tgz ~2,9G, cron root 03:00, backup-piha-home.sh) od 2025-12-01, 201 plikow. Retencja w skrypcie MARTWA od zawsze — dwa bugi:

  1. pruning szukal pihome_*.tgz, a pliki nazywaja sie YYYYMMDD.tgz (widmo $backupFolderName vs $backupFolderPrefix)
  2. rm "$fileDtgName" (wynik cut) zamiast rm "$file"

Wykonane

  • Skasowano 187 najstarszych tgz → pimain 100% → 87% (~227G wolne)
  • Uploady z telefonu potwierdzone dzialajace
  • Fix retencji w /home/pi/backup-scr/backup-piha-home.sh (sed-y na miejscu, oryginal w .sh.orig): -maxdepth 1 -name "20*.tgz", basename, rm -v "$file"; retencja 7 dni + month-endy na zawsze; pruning tylko po sukcesie tara
  • Dodatkowy fix: tar exit 1 (file changed as we read it — zywe logi NPM) traktowany jako sukces (|| [ $? -eq 1 ]); exit >=2 nadal blad
  • Swiezy backup 20260707.tgz (2,9G, jedyny realny); 0-bajtowe trupy usuniete
  • PENDING: nocny cron 03:00 = test bojowy calej sciezki (backup+retencja); kontrola: tail /var/log/backup-piha-home.log

Odkrycia / lekcje

  • Backupy byly 0-bajtowe od ~2026-06-06 (open przechodzil, write nie) — month-endy utracone przy czyszczeniu (kryterium "14 najnowszych" nie sprawdzalo rozmiaru; strata akceptowalna, zrodlo zywe na /home). Lekcja: przy czyszczeniu backupow filtrowac po size, nie tylko po dacie.
  • Heredoc przez ssh+wklejke na PIHA sie tnie — tylko krotkie komendy, sed-y jednolinijkowe albo scp.
  • Bind mount z fstab propagowany do kontenera to pulapka diagnostyczna: weryfikowac przez /proc/mounts z wnetrza kontenera i findmnt, nie docker inspect.

Backlog

  • #11 (disk alerting): node_filesystem_avail_bytes MUSI objac /media/pimain i /media/pimainmirror — drugi incydent z tego samego braku
  • NOWE: rozwazyc wciagniecie backup-piha-home.sh pod repo (per-host legacy, poza GitOps); ew. monitoring 0-bajtowych artefaktow backupu