tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1463Shell 157Markdown 91Rust 853029 Sutichaykuna

montar-trabajo: /var/log se muda al volumen — la raíz son 5,8 G y al llenarse se cae entera

La raíz del anfitrión estaba al 74% con 1,4 G libres, y lo que la llenaba no era
basura acumulada sino una fuente viva: ~100 M de log al día. El log rotado de gitea
pesaba 94 M COMPRIMIDO, y son bots — ClaudeBot 5055 peticiones, más MJ12bot,
SemrushBot y el crawler de Meta martillando /tawasuyu/tawasuyu/compare/null.

Nada que crezca solo debe vivir en una partición cuyo llenado tumba la máquina. El
volumen (sdc, 254 G) tiene 144 G libres y la card ya lo monta, así que /var/log pasa
a ser un bind de /vvv/log, al lado del de /work/sergio que ya existía.

Se elige bind y no symlink a propósito: si el volumen no está, /var/log sigue siendo
el directorio de la raíz y los servicios escriben igual. Un symlink apuntaría a la
nada y los rompería — degradar mal es peor que no proteger.

El bind va ANTES del `test -d /vvv/sergio || exit 0`, no después: un /vvv/sergio
ausente no tiene por qué dejar los logs en la raíz.

Y como el orden de arranque de arje no está declarado (ninguna card usa
requires/provides; las 26 son priority normal), si los daemons ganan la carrera
escribirían a la raíz tapada bajo el bind — el mismo silencio de antes. Por eso se
añade un aviso a stderr cuando el bind no quedó puesto: que falle ruidosamente.

Probado con la rotura, no sólo con el caso feliz: en un mount namespace aislado, con
/var/log desmontado, el script lo remonta (0 -> 74 ficheros, rc=0); y es idempotente
con todo ya montado.

De paso arregla el quoting: la card que corría en /etc había perdido las comillas
respecto a esta y fallaba en silencio desde entonces —`awk NR==2{print }` en vez de
`awk 'NR==2{print $4}'`—, con su log diciendo `awk: cmd. line:1: Unexpected token` y
`montar-trabajo: /vvv  libres`, sin el número. Ahora dice `/vvv 144.2G libres`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

129b132afbf0204cae730517e927250864501611 · ruwaq Sergio · (29 p'unchaw ñawpaq) · tayta cc3adfc58 · kay commitpi sach'ata qhaway

Semántico sayk'uy

Mana ima sutichaypas t'ikrakurqanchu: qillqalla, yachachiylla utaq willaylla t'ikrakurqan.

1 qillqakuna · +2 −2

diff --git a/scripts/servidor/cards/montar-trabajo.json b/scripts/servidor/cards/montar-trabajo.json
index f55ea70e..a65c74e0 100644
--- a/scripts/servidor/cards/montar-trabajo.json
+++ b/scripts/servidor/cards/montar-trabajo.json
@@ -55,8 +55,8 @@
       "argv": [
         "sh",
         "-c",
-        "mkdir -p /run/user; chmod 1777 /run/user; for h in /home/*; do u=$(basename \"$h\"); uid=$(id -u \"$u\" 2>/dev/null) || continue; mkdir -p \"/run/user/$uid\"; chown \"$u\" \"/run/user/$uid\"; chmod 700 \"/run/user/$uid\"; done; d=$(blkid -L trabajo 2>/dev/null); test -n \"$d\" || { echo \"montar-trabajo: ningun disco con LABEL=trabajo — el volumen no esta enchufado\" >&2; exit 78; }; mkdir -p /vvv; grep -q \" /vvv \" /proc/mounts || mount \"$d\" /vvv || { echo \"montar-trabajo: no pude montar el volumen\" >&2; exit 78; }; test -d /vvv/sergio || exit 0; mkdir -p /work/sergio; grep -q \" /work/sergio \" /proc/mounts || mount --bind /vvv/sergio /work/sergio; echo \"montar-trabajo: /vvv $(df -h /vvv | awk 'NR==2{print $4}') libres\""
+        "mkdir -p /run/user; chmod 1777 /run/user; for h in /home/*; do u=$(basename \"$h\"); uid=$(id -u \"$u\" 2>/dev/null) || continue; mkdir -p \"/run/user/$uid\"; chown \"$u\" \"/run/user/$uid\"; chmod 700 \"/run/user/$uid\"; done; d=$(blkid -L trabajo 2>/dev/null); test -n \"$d\" || { echo \"montar-trabajo: ningun disco con LABEL=trabajo — el volumen no esta enchufado\" >&2; exit 78; }; mkdir -p /vvv; grep -q \" /vvv \" /proc/mounts || mount \"$d\" /vvv || { echo \"montar-trabajo: no pude montar el volumen\" >&2; exit 78; }; mkdir -p /vvv/log; grep -q \" /var/log \" /proc/mounts || mount --bind /vvv/log /var/log; grep -q \" /var/log \" /proc/mounts || echo \"montar-trabajo: AVISO — /var/log NO quedo en el volumen; los logs caen en la raiz de 5,8G y la llenan en silencio\" >&2; test -d /vvv/sergio || exit 0; mkdir -p /work/sergio; grep -q \" /work/sergio \" /proc/mounts || mount --bind /vvv/sergio /work/sergio; echo \"montar-trabajo: /vvv $(df -h /vvv | awk 'NR==2{print $4}') libres\""
       ]
     }
   }
-}
\ No newline at end of file
+}