ansible/roles/mariadb/files/mariadb-backup.sh

32 lines
709 B
Bash
Executable file

#!/bin/sh
set -eu
umask 027
DESTDIR="/export/backup"
DATE="$(date +%Y-%m-%d)"
if [ ! -d "$DESTDIR" ]; then
echo "ERR: MariaDB backup directory [${DESTDIR}] does not exist" 1>&2
exit 1
fi
cd "$DESTDIR" && {
find . -xdev -mindepth 2 -maxdepth 2 -type f -mtime +7 \
-execdir rm -f -- {} \;
find . -xdev -depth -mindepth 1 -maxdepth 1 -type d -empty \
-execdir rmdir -- {} \;
}
DESTDIR="${DESTDIR}/${DATE}"
mkdir "$DESTDIR"
for db in $(mysql -e "show databases" -s) ; do
case "$db" in
Database|information_schema|performance_schema)
continue
;;
esac
mysqldump -E --add-drop-table "$db" | gzip > "${DESTDIR}/${db}.${DATE}.gz"
done