backup-agents/mysql_backup

58 lines
1.2 KiB
Bash
Executable file

#!/bin/bash
restoreDir=/etc/restore
mysqlDir="$restoreDir/mysql"
scriptDir="$(dirname "$0")"
function readConfig() {
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