Added mysql_backup
This commit is contained in:
parent
c7772fd141
commit
c6d446594d
2 changed files with 64 additions and 0 deletions
60
scripts/mysql_backup
Normal file
60
scripts/mysql_backup
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
restoreDir=/etc/restore
|
||||||
|
mysqlDir="$restoreDir/mysql"
|
||||||
|
scriptDir="$(dirname "$0")"
|
||||||
|
|
||||||
|
function readConfig() {
|
||||||
|
local $config
|
||||||
|
|
||||||
|
if [[ -r "${scriptDir}/../config/mysql_backup.cfg" ]]; then
|
||||||
|
source "${scriptDir}/../config/mysql_backup.cfg"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function runBackups() {
|
||||||
|
local dbname
|
||||||
|
|
||||||
|
readConfig
|
||||||
|
|
||||||
|
if [[ ! -d "/var/backups/mysql" ]]; then
|
||||||
|
mkdir -p "/var/backups/mysql" || return 1
|
||||||
|
fi
|
||||||
|
echo "Clearing out old MySQL backups..."
|
||||||
|
rm -f /var/backups/mysql/*
|
||||||
|
|
||||||
|
while read dbname
|
||||||
|
do
|
||||||
|
case "$dbname" in
|
||||||
|
sys) continue;;
|
||||||
|
information_schema) continue;;
|
||||||
|
performance_schema) continue;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "Backing up database: $dbname"
|
||||||
|
mysqldump --complete-insert --routines --triggers --single-transaction "$dbname" > /var/backups/mysql/"$dbname".sql
|
||||||
|
done < <(mysql -N -e 'show databases')
|
||||||
|
}
|
||||||
|
|
||||||
|
hook_before() {
|
||||||
|
runBackups || exit $?
|
||||||
|
}
|
||||||
|
|
||||||
|
hook_after() {
|
||||||
|
rm -rf "$mysqlDir" || exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
hook_fail() {
|
||||||
|
:
|
||||||
|
}
|
||||||
|
|
||||||
|
hook_final() {
|
||||||
|
:
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
before) hook_before || exit $? ;;
|
||||||
|
after) hook_after || exit $? ;;
|
||||||
|
fail) hook_fail || exit $? ;;
|
||||||
|
finally) hook_final || exit $? ;;
|
||||||
|
esac
|
4
templates/config/mysql.cfg
Normal file
4
templates/config/mysql.cfg
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# This configuration file is used for providing MySQL login
|
||||||
|
# credentials as needed. You can use the environment variables
|
||||||
|
# MYSQL_HOST, MYSQL_PWD, and MYSQL_HOME, for example.
|
||||||
|
# See: https://mariadb.com/kb/en/mariadb-environment-variables/
|
Loading…
Reference in a new issue