Backup all databases bash script using a loop.
#! /bin/bash
# Requires a .my.cnf file in the users home directory with the username and password
# Example:
#
# [client]
# user=backupuser
# password=thepassword
candidates=$(echo "show databases" | mysql | grep -Ev "^(Database|mysql|performance_schema|information_schema|sys)$")
date=`date +%y%m%d_%H-%M`
backupdir=/database_backups/db_backups/
# Loop through databases
for candidate in $candidates; do
# echo $candidate
/usr/bin/mysqldump $candidate | gzip > $backupdir$candidate-$date.sql.gz
done
# cleanup
find $backupdir -type f -name '*.sql.gz' -mtime +30 -delete