diff --git a/scripts/respaldo-storagebox.sh b/scripts/respaldo-storagebox.sh index a1c3952f..c39dbcee 100755 --- a/scripts/respaldo-storagebox.sh +++ b/scripts/respaldo-storagebox.sh @@ -64,7 +64,15 @@ SECO="" SSH_CMD="ssh -4 -p $SB_PORT -i $KEY -o StrictHostKeyChecking=accept-new -o ServerAliveInterval=30" # Opciones comunes. `--partial-dir` es lo que hace el respaldo continuable a mitad de fichero. -RS="rsync -a --partial-dir=.rsync-partial --info=progress2 -z --compress-choice=zstd --compress-level=3" +# `--exclude /.dmerge`: son directorios TRANSITORIOS de fusión del store — aparecen y desaparecen +# mientras hammer sella. rsync los empieza a copiar, se esfuman a media transferencia y devuelve 23 +# («some files/attrs were not transferred»). Como 23 está en la lista de reintentables, el bucle los +# reintentó **40 veces seguidas** y se rindió con el respaldo a medias (79 G de 127 G), sin que el +# mensaje dijera nunca que la culpa era de un directorio temporal. `cosecha-cron.sh` ya los excluía; +# este script no, y ésa era toda la diferencia. +# ⇒ Un error reintentable que se repite 40 veces no es un corte de red: es algo estructural. Vale la +# pena que el bucle distinga «se cayó una vez» de «falla siempre igual». +RS="rsync -a --partial-dir=.rsync-partial --exclude /.dmerge --info=progress2 -z --compress-choice=zstd --compress-level=3" # ── REINTENTOS: EL ENLACE SE CAE, Y ESO NO ES EXCEPCIONAL ─────────────────────────────────────── # Primera corrida real (2026-08-07): tras subir el cerebro y 2,3 G de store, murió con