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>
2.4 KiB
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:
- pruning szukal
pihome_*.tgz, a pliki nazywaja sieYYYYMMDD.tgz(widmo$backupFolderNamevs$backupFolderPrefix) rm "$fileDtgName"(wynik cut) zamiastrm "$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/mountsz wnetrza kontenera ifindmnt, niedocker inspect.
Backlog
- #11 (disk alerting):
node_filesystem_avail_bytesMUSI objac/media/pimaini/media/pimainmirror— drugi incydent z tego samego braku - NOWE: rozwazyc wciagniecie
backup-piha-home.shpod repo (per-host legacy, poza GitOps); ew. monitoring 0-bajtowych artefaktow backupu