#!/bin/bash ##Should be as "/opt/Elkar-MysqlBackup.sh" on the MySQL server ## MysqlUser needs following Global privilleges: SELECT, PROCESS, SHOW DATABASES, LOCK TABLES, TRIGGER, SHOW VIEW USER="" PASSWORD="" OUTPUT="/tmp/mysqlBCK" PRE () { mkdir $OUTPUT ExcludeDatabases="Database|information_schema|performance_schema|mysql|sys" databases=$(mysql -u $USER -p$PASSWORD -e "SHOW DATABASES;" | tr -d "| " | egrep -v $ExcludeDatabases) for db in $databases; do if [[ "$db" != "information_schema" ]] && [[ "$db" != "performance_schema" ]] && [[ "$db" != "mysql" ]] && [[ "$db" != _* ]] ; then echo "Dumping database: $db" mysqldump -u $USER -p$PASSWORD --databases $db > $OUTPUT/$db.sql fi done } POST () { rm -rf /tmp/mysqlBCK } $1