The best for me mysql dump script,
it can be configured by cron dates,
create backup many times per day, and store fore one week.
CRON:
0 0,6,12,18 * * * /backup/mysql/backup-mysql-all-separate.sh
SCRIPT:
#!/bin/bash
OUTPUT="/backup/mysql/`date +%a/hour_%H`"
echo $OUTPUT
# if not exists
if [ ! -d "$OUTPUT" ]; then mkdir -p $OUTPUT; fi
# /bin/rm -f -v "$OUTPUT/*.gz" > /dev/null 2>&1
/bin/rm -f -v $OUTPUT/*.gz
databases=`/usr/bin/mysql -e "SHOW DATABASES;" | tr -d "| " | grep -v Database`
for db in $databases; do
if [[ "$db" != "information_schema" ]] && [[ "$db" != _* ]] && [[ "$db" != "performance_schema" ]] ; then
echo "Dumping database: $db"
/usr/bin/mysqldump --force --opt --events --databases $db > $OUTPUT/$db.sql
/bin/nice -n +19 /usr/bin/ionice -c3 /bin/gzip -9 $OUTPUT/$db.sql
fi
done