From 8911645c20642081ce65cf7d588242b8ff98ac9f Mon Sep 17 00:00:00 2001 From: Myron Blair Date: Wed, 1 Jul 2026 21:22:02 -0500 Subject: [PATCH] =?UTF-8?q?Add=20jarvis-backup.sh=20=E2=80=94=20daily=20my?= =?UTF-8?q?sqldump=20with=207-day=20retention?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Backup script was never migrated when JARVIS moved from DO to VM 211. Runs daily at 3am, stores compressed dumps in /var/backups/jarvis/, logs to /var/log/jarvis/backup.log. --- deploy/jarvis-backup.sh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 deploy/jarvis-backup.sh diff --git a/deploy/jarvis-backup.sh b/deploy/jarvis-backup.sh new file mode 100644 index 0000000..72dfef4 --- /dev/null +++ b/deploy/jarvis-backup.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# JARVIS database backup — runs daily, 7-day retention +# Lives in repo at /var/www/jarvis/deploy/jarvis-backup.sh + +BACKUP_DIR="/var/backups/jarvis" +LOG="/var/log/jarvis/backup.log" +DB_NAME="jarvis_db" +DB_USER="jarvis_user" +DB_PASS="J4rv1s_Pr0t0c0l_2026!" +TIMESTAMP=$(date +"%Y%m%d_%H%M%S") +OUTFILE="$BACKUP_DIR/${DB_NAME}_${TIMESTAMP}.sql.gz" + +mkdir -p "$BACKUP_DIR" + +echo "[$(date)] Starting backup..." >> "$LOG" + +if mysqldump -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" | gzip > "$OUTFILE"; then + SIZE=$(du -sh "$OUTFILE" | cut -f1) + echo "[$(date)] Backup OK: $OUTFILE ($SIZE)" >> "$LOG" +else + echo "[$(date)] ERROR: mysqldump failed" >> "$LOG" + exit 1 +fi + +# 7-day retention +find "$BACKUP_DIR" -name "${DB_NAME}_*.sql.gz" -mtime +7 -delete +echo "[$(date)] Cleanup done. Files kept: $(ls $BACKUP_DIR | wc -l)" >> "$LOG"