Cron Tab for Daily Backup and DB Restoration
Prerequisites
MySQL Database Backup
mkdir -p /home/ovaledge cd /home/ovaledge#!/bin/bash # Database credentials user="root" password="<mysql root user password>" host="<localhost or RDS endpoint>" db_name="ovaledgedb" # Backup storage path backup_path="<full path where backup should be stored>" # Date format for filename date=$(date +"%d-%b-%Y") # Log file path log_file="$backup_path/backup.log" # Create backup directory if it doesn't exist mkdir -p "$backup_path" # Perform mysqldump echo "[$(date)] Starting backup for $db_name" >> "$log_file" mysqldump --user="$user" --password="$password" --host="$host" "$db_name" > "$backup_path/${db_name}-${date}.sql" 2>>"$log_file" if [ $? -eq 0 ]; then echo "[$(date)] Backup successful: ${db_name}-${date}.sql" >> "$log_file" else echo "[$(date)] Backup failed for $db_name" >> "$log_file" fi # Delete backups older than 10 days find "$backup_path" -name "${db_name}-*.sql" -type f -mtime +10 -exec rm -f {} \; >> "$log_file" 2>&1 echo "[$(date)] Old backups (older than 10 days) cleaned up." >> "$log_file"
chmod +x mysql_backup.sh
./mysql_backup.sh
crontab -e0 2 * * * /home/ovaledge/mysql_backup.sh >> /home/ovaledge/backup.log 2>&1
MySQL Database Restoration
Error Handling and Recovery
Last updated
Was this helpful?

