Added mysql_backup

This commit is contained in:
Eric Renfro 2023-12-13 12:51:18 -05:00
parent c7772fd141
commit c6d446594d
Signed by: psi-jack
GPG key ID: 14977F3A50D9A5BF
2 changed files with 64 additions and 0 deletions

60
scripts/mysql_backup Normal file
View 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

View 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/