From 51152e60c7c81421b9496e69b9402b88456f1d0f Mon Sep 17 00:00:00 2001 From: henk Date: Sat, 1 Oct 2022 19:59:53 +0200 Subject: [PATCH] 2022-10-01 19:59:53 --- mysql/README.md | 5 +++-- mysql/mysqlbackup.sh | 48 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 mysql/mysqlbackup.sh diff --git a/mysql/README.md b/mysql/README.md index d3d3b5c..1477ad6 100644 --- a/mysql/README.md +++ b/mysql/README.md @@ -1,4 +1,5 @@ -Verschillende mysql tips +mysql tips + +Ik gebruik mariadb, installeren met -Ik gebruik mariadb, installeren als apt install mariadb-server -y diff --git a/mysql/mysqlbackup.sh b/mysql/mysqlbackup.sh new file mode 100644 index 0000000..c3f2a04 --- /dev/null +++ b/mysql/mysqlbackup.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# Basic configuration: datestamp e.g. YYYYMMDD + +DATE=$(date +"%Y%m%d") + +# Location of your backups (create the directory first!) + +BACKUP_DIR="/backup/mysql" + +# MySQL login details + +MYSQL_USER="root" +MYSQL_PASSWORD="YOURSECUREPASSWORD" + +# MySQL executable locations (no need to change this) + +MYSQL=/usr/bin/mysql +MYSQLDUMP=/usr/bin/mysqldump + +# MySQL databases you wish to skip + +SKIPDATABASES="Database|information_schema|performance_schema|mysql" + +# Number of days to keep the directories (older than X days will be removed) + +RETENTION=14 + +# ---- DO NOT CHANGE BELOW THIS LINE ------------------------------------------ +# +# Create a new directory into backup directory location for this date + +mkdir -p $BACKUP_DIR/$DATE + +# Retrieve a list of all databases + +databases=`$MYSQL -u$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "($SKIPDATABASES)"` + +# Dumb the databases in seperate names and gzip the .sql file + +for db in $databases; do +echo $db +$MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD --skip-lock-tables --events --databases $db | gzip > "$BACKUP_DIR/$DATE/$db.sql.gz" +done + +# Remove files older than X days + +find $BACKUP_DIR/* -mtime +$RETENTION -delete