diff --git a/backup-system/configmap-backup-scripts.yaml b/backup-system/configmap-backup-scripts.yaml index c6ce10d..5a7d81a 100644 --- a/backup-system/configmap-backup-scripts.yaml +++ b/backup-system/configmap-backup-scripts.yaml @@ -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" diff --git a/backup-system/cronjob-reddit-intel.yaml b/backup-system/cronjob-reddit-intel.yaml deleted file mode 100644 index d6db4db..0000000 --- a/backup-system/cronjob-reddit-intel.yaml +++ /dev/null @@ -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