mirror of
https://github.com/myronblair/jarvis
synced 2026-07-27 16:22:55 -05:00
Add jarvis-backup.sh — daily mysqldump with 7-day retention
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.
This commit is contained in:
@@ -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"
|
||||
Reference in New Issue
Block a user