vigía: medir los FS donde hammer gasta, no el del repo
El store de hammer se mudó al volumen harkaq-cosecha (/dev/sdb, bind-mount
sobre ./store, work/sources y work/repos; CARGO_HOME también). Desde eso,
medir `$ROOT` mide /mnt/vvv, que hammer COMPARTE con tawasuyu y que ya no
es donde gasta.
Por qué se movió: tawasuyu repuebla su target a ~62 G/h. El 27/08 se le
liberaron 92,9 GiB con cargo clean, se lanzó la campaña con 64 G libres y
70 min después el disco estaba en 237 MB — la tanda abortó en cosmic-applets
por un disco que no era suyo. El cargo clean sirve para un pico, no para
financiar una campaña larga: el vecino lo recupera entero en una hora.
El vigía ahora toma el mínimo de {STORE, work/sources, CARGO_HOME}. Con
$ROOT veía 46 G y bajando; ahora ve 84 G reales.
This commit is contained in:
@@ -49,14 +49,24 @@ SECO=0; [ "${1:-}" = "--seco" ] && SECO=1
|
||||
# era 138 G libres en el repo y 19 G en `/`, o sea que el vigía habría dado luz verde mientras el que
|
||||
# se llenaba de verdad era el otro — y llenar `/` no rompe una tanda, rompe la máquina. Se toma el
|
||||
# MÍNIMO de los dos. Si comparten FS, `df` devuelve lo mismo dos veces y esto es inocuo.
|
||||
#
|
||||
# ── 2026-08-27: MIRA DÓNDE SE GASTA, NO DÓNDE ESTÁ EL REPO ──────────────────────────────────────
|
||||
# Medir `$ROOT` dejó de ser correcto al mudar el store al volumen `harkaq-cosecha`. `$ROOT` es
|
||||
# /mnt/vvv, que hammer COMPARTE con tawasuyu, y tawasuyu repuebla su target a ~62 G/h: el 27/08 se
|
||||
# comió los 92 G que se le habían liberado en 70 minutos y el vigía abortó la tanda por un disco
|
||||
# que hammer ya ni usaba. Un vigía que mide el disco de OTRO no protege la tanda, la mata.
|
||||
# Ahora se miden los tres sitios donde hammer SÍ crece —store, árboles de fuentes y CARGO_HOME—
|
||||
# y se toma el mínimo. Si comparten FS, `df` repite el número y esto es inocuo.
|
||||
CARGO_H="${CARGO_HOME:-$HOME/.cargo}"
|
||||
avail_gb() { df -BG --output=avail "$1" 2>/dev/null | tail -1 | tr -dc 0-9; }
|
||||
libre_gb() {
|
||||
local a b
|
||||
a=$(avail_gb "$ROOT"); b=$(avail_gb "$CARGO_H")
|
||||
[ -z "${a:-}" ] && a=999999
|
||||
[ -z "${b:-}" ] && b=999999
|
||||
[ "$a" -le "$b" ] && echo "$a" || echo "$b"
|
||||
local m=999999 v d
|
||||
for d in "$STORE" "$ROOT/work/sources" "$CARGO_H"; do
|
||||
[ -e "$d" ] || continue
|
||||
v=$(avail_gb "$d"); [ -z "${v:-}" ] && continue
|
||||
[ "$v" -lt "$m" ] && m=$v
|
||||
done
|
||||
echo "$m"
|
||||
}
|
||||
ts() { date -u +%Y-%m-%dT%H:%M:%SZ; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user