Added mysql_backup
This commit is contained in:
parent
c7772fd141
commit
c6d446594d
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