andymyers of Devs
3/20/2020 - 3:41 PM

Backup all databases

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