From 29d65832ecafd962210b7938bed7984f0447403b Mon Sep 17 00:00:00 2001 From: Joerg Lehmann Date: Wed, 11 Aug 2021 19:36:40 +0200 Subject: [PATCH] document MySQL Backup --- README.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/README.md b/README.md index 98c04ea..20e44cb 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,38 @@ Check, wer gebanned ist: ## Backup Server ```bash +Backup MySQL-DBs: + +/usr/local/bin/backup-mysql-dbs.sh (sinngemaess, eine Zeile pro Container): +root@moby:/usr/local/bin# more backup-mysql-dbs.sh +#!/bin/bash +# Backup der MySQL DBs (Docker) +# +for container_name in $(docker ps --format "{{.Image}} {{.Names}}" |grep mysql |awk '{print $2}'); do + if [ -f /usr/local/bin/${container_name}.pwd ]; then + # im pwd-File muss "PWD=XXXX" (root) gesetzt werden + . /usr/local/bin/${container_name}.pwd + docker exec ${container_name} /usr/bin/mysqldump -u root --password=${PWD} --all-databases > /backup/mysql-databases-${container_name}-$(date +%Y%m%W).sql 2>/dev/null + else + >&2 echo "Password must be set as PWD=XXXX in /usr/local/bin/${container_name}.pwd" + fi +done + +# Cleanup Old Backups +find /backup -type f -mtime +30 -exec rm {} \; + +/etc/cron.d/backup-mysql-dbs: +# Backup MySQL DBs +# +45 5 * * * root /usr/local/bin/backup-mysql-dbs.sh >/dev/null + + +Restore: just in case: +cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root --password=root DATABASE + + + + # apt install restic # mkdir /backup # mkdir /backup-restic