respaldo: rsync 24 (ficheros desaparecidos) no es un fallo — es podar mientras se sube

El bucle de reintentos trataba el 24 como «error que no es de red» y habría PARADO el
respaldo entero. Pero 24 significa que ficheros del origen desaparecieron durante la
transferencia, que en este proyecto es una combinación NORMAL: el respaldo dura ~19 h y
`store-gc.sh` es la válvula del disco, así que podar mientras se sube va a pasar. Y pasaría
justo cuando el disco aprieta, o sea cuando menos conviene quedarse sin copia.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-07 15:06:26 -04:00
co-authored by Claude Opus 5
parent 97eb1d4af2
commit 89c02db639
+7
View File
@@ -84,6 +84,13 @@ reintentar() {
rc=$? rc=$?
case "$rc" in case "$rc" in
10|12|23|30|35|255) ;; # red / pipe roto / timeout: insistir 10|12|23|30|35|255) ;; # red / pipe roto / timeout: insistir
# 24 = «ficheros de origen desaparecieron durante la transferencia». NO es un fallo: pasa
# cuando `store-gc.sh` poda artefactos superados mientras el respaldo corre, que es una
# combinación NORMAL en este proyecto (el respaldo dura ~19 h y la poda es la válvula del
# disco). Sin esta línea el bucle lo tomaría por «error que no es de red» y PARARÍA el
# respaldo entero por algo inofensivo — y encima justo cuando el disco aprieta, que es cuando
# menos conviene quedarse sin copia.
24) ;;
*) echo "!! $etiqueta: error $rc que NO es de red — no reintento"; return "$rc" ;; *) echo "!! $etiqueta: error $rc que NO es de red — no reintento"; return "$rc" ;;
esac esac
if [ "$intento" -ge 40 ]; then if [ "$intento" -ge 40 ]; then