backup: retirar reddit-intel del sistema de copias

El servicio se decomisó (Reddit denegó el acceso a la API), así que su CronJob
de n97 estaría empaquetando cada noche un directorio que ya nadie escribe, y
backup-verify seguiría exigiendo una copia fresca que nunca va a llegar: en
tres días habría empezado a sumar ERRORS y a disparar la alerta por una avería
que no existe.

Se van el CronJob, el script reddit-intel.sh y su comprobación en verify.sh.
El `--exclude /reddit-intel/**` de rclone-mega SE QUEDA a propósito: sync es un
espejo exacto y quitarlo borraría de un tirón las copias que aún viven en Mega.
Se retirará cuando se decida purgar ese remoto a mano.

Verificado: el ConfigMap sigue parseando y los cuatro scripts pasan `sh -n`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-27 20:11:38 +00:00
co-authored by Claude Opus 5
parent e4e387d360
commit 6f8d699ac0
2 changed files with 4 additions and 101 deletions
+4 -42
View File
@@ -230,8 +230,10 @@ data:
log "Origen: /data/backups/backups"
log "Destino: mega:k3s-backups/"
# --exclude reddit-intel: ese subdir remoto lo escribe el CronJob de n97
# directamente; un sync sin exclude lo borraría (sync = espejo exacto).
# --exclude reddit-intel: reddit-intel se decomisó el 2026-07-27 y ya nadie
# escribe ese subdir, pero el exclude SE QUEDA: sync es espejo exacto, así
# que quitarlo borraría de golpe las copias que aún quedan allí. Se retira
# cuando se decida purgar el remoto a mano.
# --mega-hard-delete: sin esto los borrados de rotación van a la papelera de
# MEGA, que sigue contando cuota. Llenó los 20GB el 2026-07-25 y tumbó
# este job y el de reddit-intel ("Request over quota").
@@ -275,31 +277,6 @@ data:
--config /rclone/rclone.conf --log-level INFO --stats 60s
rm -rf "$KEEP"
log "B2 crown-jewels completado ($N artefactos)."
reddit-intel.sh: |
#!/bin/sh
# Corre en chemavx-n97 (imagen rclone, BusyBox — sin GNU-ismos).
# Sube /opt/reddit-intel a Mega directamente: es el único dato del host n97
# y su cron local escribe en el MISMO disco (inútil contra fallo de disco).
set -e
log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $*"; }
DATE=$(date +%Y-%m-%d_%H-%M-%S)
F="/tmp/reddit-intel_${DATE}.tar.gz"
log "Empaquetando /opt/reddit-intel..."
tar -czf "$F" -C /opt/reddit-intel .
gzip -t "$F"
log "Subiendo a mega:k3s-backups/reddit-intel/..."
rclone copy "$F" mega:k3s-backups/reddit-intel/ --config /rclone/rclone.conf --log-level INFO
log "Podando copias remotas de más de 8 días..."
# --mega-hard-delete: ver nota en rclone-mega.sh (la papelera cuenta cuota).
rclone delete mega:k3s-backups/reddit-intel/ --min-age 8d --mega-hard-delete --config /rclone/rclone.conf
log "Subiendo a B2 (crown jewels, retención 3 días)..."
rclone copy "$F" b2:chemavx-k3s-backups/reddit-intel/ --config /rclone/rclone.conf --log-level INFO
# --b2-hard-delete: ver nota en b2-crown-jewels.sh (B2 oculta y factura, no borra).
rclone delete b2:chemavx-k3s-backups/reddit-intel/ --min-age 3d --b2-hard-delete --config /rclone/rclone.conf
rm -f "$F"
log "reddit-intel OK"
verify.sh: |
#!/bin/sh
# Imagen BusyBox (rclone) — evitar GNU-ismos (date -d 'yesterday' NO funciona).
@@ -339,21 +316,6 @@ data:
fi
done
# reddit-intel vive en su subdir (lo sube el CronJob de n97)
FOUND=0
for d in $ACCEPTED_DATES; do
if echo "$FILES" | grep -q "reddit-intel/reddit-intel_${d}"; then
FOUND=1
break
fi
done
if [ "$FOUND" -eq 1 ]; then
log "[OK] reddit-intel"
else
log "[WARN] reddit-intel — sin backup en los últimos 3 días"
ERRORS=$((ERRORS + 1))
fi
log "---"
TOTAL=$(echo "$FILES" | grep -c "tar.gz\|sql.gz\|db.gz" || true)
log "Total archivos en Mega: $TOTAL"
-59
View File
@@ -1,59 +0,0 @@
apiVersion: batch/v1
kind: CronJob
metadata:
name: reddit-intel-backup
namespace: backup-system
spec:
# Único CronJob de backup que corre en n97: /opt/reddit-intel vive fuera de k3s
# (Docker en el host) y su cron local escribe en el mismo disco.
schedule: "15 3 * * *"
concurrencyPolicy: Forbid
failedJobsHistoryLimit: 2
successfulJobsHistoryLimit: 3
jobTemplate:
spec:
backoffLimit: 1
activeDeadlineSeconds: 1800
template:
spec:
nodeSelector:
kubernetes.io/hostname: chemavx-n97
restartPolicy: Never
securityContext:
runAsUser: 0
containers:
- name: rclone
# OJO: imagen BusyBox — el script debe evitar GNU-ismos
image: docker.io/rclone/rclone:1.74.3
command: ["/bin/sh", "/scripts/reddit-intel.sh"]
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 256Mi
volumeMounts:
- mountPath: /opt/reddit-intel
name: reddit-intel
readOnly: true
- mountPath: /rclone
name: rclone-conf
- mountPath: /scripts
name: scripts
volumes:
- name: reddit-intel
hostPath:
path: /opt/reddit-intel
type: Directory
# RCLONE_CONF (Infisical /backup-system) contiene mega+b2 desde 2026-07-15
- name: rclone-conf
secret:
secretName: rclone-conf-infisical
items:
- key: RCLONE_CONF
path: rclone.conf
- name: scripts
configMap:
name: backup-scripts
defaultMode: 0755