25 lines
833 B
Bash
25 lines
833 B
Bash
#!/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="<MysqlUserName>"
|
|
PASSWORD="<MysqlUserPassword>"
|
|
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 |