Files
myron 8d27290831 Fix 6 code review findings: auth, mysqldump stderr, dead code, audit logs
- backup.php: replace manual admin check with requireAdmin(); suppress
  mysqldump password warning (2>&1 → 2>/dev/null) to prevent corrupt dumps
- ttg-backup.sh: same mysqldump stderr fix
- admin.php toggle_user: fix undefined $adminId/$userId in logAdminAction
  call — use $_SESSION['user_id'] and $uid instead
- admin.php chat_clear_all: wrap in try/catch and add logAdminAction audit
- admin.php: delete unreachable broadcast query block after break statement
- admin/index.php: fix cashouts_total formatted as currency — use parseInt
  (tokens are whole numbers, not dollars)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-06 10:02:07 +00:00

45 lines
1.6 KiB
Bash

#!/bin/bash
# TomTomGames automated backup — runs daily at 2 AM via cron
# Cron entry: 0 2 * * * /usr/local/bin/ttg-backup.sh >> /home/tomtomgames.com/backups/backup.log 2>&1
BACKUP_DIR="/home/tomtomgames.com/backups"
SITE_DIR="/home/tomtomgames.com/public_html"
DB_NAME="tomt_ttg_db"
DB_USER="tomt_ttg_user"
DB_PASS='q#q+mrOcozsa7I6J'
DATE=$(date +%Y-%m-%d_%H-%M-%S)
SQL_FILE="/tmp/ttg_db_${DATE}.sql"
ZIP_FILE="${BACKUP_DIR}/ttg_backup_${DATE}.zip"
mkdir -p "$BACKUP_DIR"
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Starting backup..."
# Export database
/usr/bin/mysqldump -u "$DB_USER" "-p${DB_PASS}" "$DB_NAME" > "$SQL_FILE" 2>/dev/null
if [ $? -ne 0 ] || [ ! -s "$SQL_FILE" ]; then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ERROR: Database export failed"
rm -f "$SQL_FILE"
exit 1
fi
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Database exported ($(du -sh "$SQL_FILE" | cut -f1))"
# Create zip archive (site files + db dump)
/usr/bin/zip -r "$ZIP_FILE" "$SITE_DIR" "$SQL_FILE" -x "*/backups/*" > /dev/null 2>&1
RC=$?
rm -f "$SQL_FILE"
if [ $RC -ne 0 ] || [ ! -f "$ZIP_FILE" ]; then
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ERROR: Archive creation failed"
rm -f "$ZIP_FILE"
exit 1
fi
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Archive created: $(basename "$ZIP_FILE") ($(du -sh "$ZIP_FILE" | cut -f1))"
# Keep only the 7 most recent backups
ls -t "${BACKUP_DIR}"/ttg_backup_*.zip 2>/dev/null | tail -n +8 | while read old; do
rm -f "$old"
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Pruned old backup: $(basename "$old")"
done
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Backup complete."