Backup de todas as bases MySQL em arquivos separados

Fazer backup de todas as bases de dados é bem simples usando o mysqldump

mysqldump -u root -p --all-databases > all_dbs.sql

Mas o problema que temos fazendo isso, é que todas as bases ficam em arquivo só, o que dificulta bastante a restauração destas bases, principalmente quando necessita restaurar apenas uma delas, ou algumas poucas bases.

Na internet podemos encontrar vários scripts complexos para esta solução, mas o script encontrado neste site resolve pontualmente de modo muito mais simples. Eu testei o script em meu servidor e o resultado foi de acordo com o esperado, valeu a pena;

#! /bin/bash
 
TIMESTAMP=$(date +"%F")
BACKUP_DIR="/backup/$TIMESTAMP"
MYSQL_USER="backup"
MYSQL=/usr/bin/mysql
MYSQL_PASSWORD="password"
MYSQLDUMP=/usr/bin/mysqldump
 
mkdir -p "$BACKUP_DIR/mysql"
 
databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema)"`
 
for db in $databases; do
 $MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --databases $db | gzip > "$BACKUP_DIR/mysql/$db.gz"
done

Resultado: