#!/bin/bash # Many ways of backuping MySQL/MariaDB databases. # Dump with all databases in one file. # mysqldump --defaults-extra-file=/etc/mysql/debian.cnf \ # --opt --all-databases --force --events | gzip --best > /home/backup/mysql.bak.gz # Dump des BDD en .sql.gz # mkdir -p /home/mysqldump/ # for i in $(mysql -e 'show databases' -s --skip-column-names | egrep -v "^(Database|information_schema|performance_schema)"); do # mysqldump --force --events $i | gzip --best > /home/mysqldump/${i}.sql.gz # done # for i in $(echo SHOW DATABASES | mysql | egrep -v "^(Database|information_schema|performance_schema)" ); \ # do mkdir -p /home/mysqldump/$i ; chown -R mysql /home/mysqldump ; \ # mysqldump --defaults-extra-file=/etc/mysql/debian.cnf --force -Q --opt --events --skip-comments -T \ # /home/mysqldump/$i $i; done # Dump par base # mkdir -p -m 700 /home/mysqldump/BASE # chown -R mysql /home/mysqldump/ # mysqldump --defaults-extra-file=/etc/mysql/debian.cnf --force -Q \ # --opt --events --skip-comments -T /home/mysqldump/BASE BASE # mkdir -p /home/mysqlhotcopy/ # mysqlhotcopy BASE /home/mysqlhotcopy/ # Dump instanceS MySQL # ## Recherche du mot de passe mysqladmin #mysqladminpasswd=`cat /root/.my.cnf |grep -m1 'password = .*' |cut -d" " -f3` # ## Determination des instances MySQL disponibles sur le serveur (hors 3306) #grep -E "^port\s*=\s*\d*" /etc/mysql/my.cnf |while read instance; do # instance=$(echo $instance |tr -d '\t') # instance=${instance// /} # instance=${instance//port=/} # if [ "$instance" != "3306" ] # then # mysqldump -P $instance --opt --all-databases -u mysqladmin -p$mysqladminpasswd > /home/backup/mysql.$instance.bak # fi #done exit 0