/usr/local/bin/mysql.backup.sh
#!/bin/bash NOW=$(date +"%m-%d-%Y") OLD=$(date +"%m-%d-%Y" --date="3 days ago") PROJECT="project_name" LOCATION="/home/backup" FILE="$PROJECT.$NOW.sql" FILE2="$FILE.gz" FILEOLD="$PROJECT.$OLD.sql.gz" EMAIL="youremail@domain.com" $SQLUSER="username" $SQLPASS="password" $SQLNAME="database_name"cd $LOCATION ; \ rm -f $FILEOLD ; \ mysqldump -u $SQLUSER --password=$SQLPASS $SQLNAME > \ $LOCATION/$FILE ; \ gzip $LOCATION/$FILE ; \ echo "Backup location is in $LOCATION/$FILE2" | \ mail -s "[$PROJECT] MySQL Backup" $EMAIL
Then you can put it on your cron (background process)
Below cron will execute the script on Saturday at 12AM:
0 0 * * 6 /usr/local/bin/mysql.backup.sh
Good luck!