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:
@@ -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"
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user