aufräumen und Backup Script erweitert
This commit is contained in:
0
.gitignore
vendored
Normal file
0
.gitignore
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
-- MySQL dump 10.13 Distrib 8.4.5, for Linux (x86_64)
|
||||||
|
--
|
||||||
|
-- Host: localhost Database: TEST
|
||||||
|
-- information_schema
|
||||||
|
-- mysql
|
||||||
|
-- performance_schema
|
||||||
|
-- sys
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 8.4.5
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!50503 SET NAMES utf8mb4 */;
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
@@ -0,0 +1,20 @@
|
|||||||
|
-- MySQL dump 10.13 Distrib 8.4.5, for Linux (x86_64)
|
||||||
|
--
|
||||||
|
-- Host: localhost Database: TEST
|
||||||
|
-- information_schema
|
||||||
|
-- mysql
|
||||||
|
-- performance_schema
|
||||||
|
-- sys
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 8.4.5
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!50503 SET NAMES utf8mb4 */;
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
@@ -0,0 +1,20 @@
|
|||||||
|
-- MySQL dump 10.13 Distrib 8.4.5, for Linux (x86_64)
|
||||||
|
--
|
||||||
|
-- Host: localhost Database: TEST
|
||||||
|
-- information_schema
|
||||||
|
-- mysql
|
||||||
|
-- performance_schema
|
||||||
|
-- sys
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 8.4.5
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!50503 SET NAMES utf8mb4 */;
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
@@ -0,0 +1,20 @@
|
|||||||
|
-- MySQL dump 10.13 Distrib 8.4.5, for Linux (x86_64)
|
||||||
|
--
|
||||||
|
-- Host: localhost Database: TEST
|
||||||
|
-- information_schema
|
||||||
|
-- mysql
|
||||||
|
-- performance_schema
|
||||||
|
-- sys
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 8.4.5
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!50503 SET NAMES utf8mb4 */;
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
@@ -0,0 +1,20 @@
|
|||||||
|
-- MySQL dump 10.13 Distrib 8.4.5, for Linux (x86_64)
|
||||||
|
--
|
||||||
|
-- Host: localhost Database: TEST
|
||||||
|
-- information_schema
|
||||||
|
-- mysql
|
||||||
|
-- performance_schema
|
||||||
|
-- sys
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 8.4.5
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!50503 SET NAMES utf8mb4 */;
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
@@ -0,0 +1,20 @@
|
|||||||
|
-- MySQL dump 10.13 Distrib 8.4.5, for Linux (x86_64)
|
||||||
|
--
|
||||||
|
-- Host: localhost Database: TEST
|
||||||
|
-- information_schema
|
||||||
|
-- mysql
|
||||||
|
-- performance_schema
|
||||||
|
-- sys
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 8.4.5
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!50503 SET NAMES utf8mb4 */;
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
@@ -0,0 +1,20 @@
|
|||||||
|
-- MySQL dump 10.13 Distrib 8.4.5, for Linux (x86_64)
|
||||||
|
--
|
||||||
|
-- Host: localhost Database: TEST
|
||||||
|
-- information_schema
|
||||||
|
-- mysql
|
||||||
|
-- performance_schema
|
||||||
|
-- sys
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 8.4.5
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!50503 SET NAMES utf8mb4 */;
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
@@ -0,0 +1,20 @@
|
|||||||
|
-- MySQL dump 10.13 Distrib 8.4.5, for Linux (x86_64)
|
||||||
|
--
|
||||||
|
-- Host: localhost Database: TEST
|
||||||
|
-- information_schema
|
||||||
|
-- mysql
|
||||||
|
-- performance_schema
|
||||||
|
-- sys
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 8.4.5
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!50503 SET NAMES utf8mb4 */;
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
@@ -0,0 +1,20 @@
|
|||||||
|
-- MySQL dump 10.13 Distrib 8.4.5, for Linux (x86_64)
|
||||||
|
--
|
||||||
|
-- Host: localhost Database: TEST
|
||||||
|
-- information_schema
|
||||||
|
-- mysql
|
||||||
|
-- performance_schema
|
||||||
|
-- sys
|
||||||
|
-- ------------------------------------------------------
|
||||||
|
-- Server version 8.4.5
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!50503 SET NAMES utf8mb4 */;
|
||||||
|
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
|
||||||
|
/*!40103 SET TIME_ZONE='+00:00' */;
|
||||||
|
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
|
||||||
|
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
|
||||||
|
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
|
||||||
|
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
|
4
Backup/dump.log
Normal file
4
Backup/dump.log
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
[2025-05-23 20:32:30] [INFO] ---------- Backup gestartet: 2025-05-23_20-32-30 ----------
|
||||||
|
[2025-05-23 20:32:30] [INFO] Gefundene Container: mysql-backup-test-container
|
||||||
|
[2025-05-23 20:32:30] [INFO] Dump für Datenbank TEST aus Container mysql-backup-test-container erstellen...
|
||||||
|
[2025-05-23 20:32:30] [INFO] Fertig
|
80
Backup/mysql-dumps.sh
Executable file
80
Backup/mysql-dumps.sh
Executable file
@@ -0,0 +1,80 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Funktion für Ausgaben
|
||||||
|
function echo_info() {
|
||||||
|
echo -e "\e[32m[$(date +'%Y-%m-%d %H:%M:%S')] [INFO] $1\e[0m"
|
||||||
|
echo -e "[$(date +'%Y-%m-%d %H:%M:%S')] [INFO] $1" >> "$LOG_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
function echo_warning() {
|
||||||
|
echo -e "\e[33m[$(date +'%Y-%m-%d %H:%M:%S')] [WARNUNG] $1\e[0m"
|
||||||
|
echo -e "[$(date +'%Y-%m-%d %H:%M:%S')] [WARNUNG] $1" >> "$LOG_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
function echo_error() {
|
||||||
|
echo -e "\e[31m[$(date +'%Y-%m-%d %H:%M:%S')] [FEHLER] $1\e[0m"
|
||||||
|
echo -e "[$(date +'%Y-%m-%d %H:%M:%S')] [FEHLER] $1" >> "$LOG_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
function echo_success() {
|
||||||
|
echo -e "\e[34m[$(date +'%Y-%m-%d %H:%M:%S')] [ERFOLG] $1\e[0m"
|
||||||
|
echo -e "[$(date +'%Y-%m-%d %H:%M:%S')] [ERFOLG] $1" >> "$LOG_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Variablen
|
||||||
|
LOG_FILE="./dump.log"
|
||||||
|
BACKUP_DIR="./Docker/mysql/Backup/"
|
||||||
|
CONTAINERS=$(docker ps --filter "ancestor=mysql:8" --format "{{.Names}}")
|
||||||
|
DATE=$(TZ=Europe/Berlin date +'%Y-%m-%d_%H-%M-%S')
|
||||||
|
|
||||||
|
# Log Datei aktualisieren
|
||||||
|
echo_info "---------- Backup gestartet: $DATE ----------"
|
||||||
|
# Überprüfen, ob das Backup-Verzeichnis existiert und ggf. erstellen
|
||||||
|
if [ ! -d "$BACKUP_DIR" ]; then
|
||||||
|
echo "Das Verzeichnis $BACKUP_DIR existiert nicht. Erstelle es..."
|
||||||
|
mkdir -p "$BACKUP_DIR"
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo_success "Verzeichnis $BACKUP_DIR erfolgreich erstellt."
|
||||||
|
else
|
||||||
|
echo_error "Fehler beim Erstellen des Verzeichnisses $BACKUP_DIR. Skript wird abgebrochen."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Liste aller MySQL Container
|
||||||
|
CONTAINERS=$(docker ps --filter "ancestor=mysql:8" --format "{{.Names}}")
|
||||||
|
for CONTAINER in $CONTAINERS; do
|
||||||
|
echo_info "Gefundene Container: $CONTAINER"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Aktuelles Datum
|
||||||
|
DATE=$(TZ=Europe/Berlin date +'%Y-%m-%d_%H-%M-%S')
|
||||||
|
|
||||||
|
# Loop über Container
|
||||||
|
for CONTAINER in $CONTAINERS; do
|
||||||
|
# Root Passwort aus Environment-Variablen oder docker secrets auslesen
|
||||||
|
MYSQL_ROOT_PASSWORD=$(docker exec $CONTAINER printenv MYSQL_ROOT_PASSWORD)
|
||||||
|
|
||||||
|
if [ -z "$MYSQL_ROOT_PASSWORD" ]; then
|
||||||
|
echo_warning "Kein Root-Passwort für Container $CONTAINER gefunden. Skippen..."
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Liste der Datenbanken im Container
|
||||||
|
DATABASES=$(docker exec $CONTAINER mysql -p"$MYSQL_ROOT_PASSWORD" -e "SHOW DATABASES;" | tail -n +2)
|
||||||
|
|
||||||
|
# Loop über Datenbanken + Dump für jede Datenbank erstellen
|
||||||
|
for DATABASE in $DATABASES; do
|
||||||
|
# System-Datenbanken überspringen
|
||||||
|
if [[ "$DATABASE" == "information_schema" || "$DATABASE" == "performance_schema" || "$DATABASE" == "mysql" || "$DATABASE" == "sys" ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Dump erstellen
|
||||||
|
echo_info "Dump für Datenbank $DATABASE aus Container $CONTAINER erstellen..."
|
||||||
|
docker exec $CONTAINER mysqldump -u root -p"$MYSQL_ROOT_PASSWORD" --databases "$DATABASES" > "$BACKUP_DIR/$CONTAINER-$DATABASE-$DATE.sql"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
echo_info "Fertig"
|
@@ -12,8 +12,8 @@
|
|||||||
### Backup-Pfade ###
|
### Backup-Pfade ###
|
||||||
BACKUP_PATH="/paht/to/local/directory"
|
BACKUP_PATH="/paht/to/local/directory"
|
||||||
|
|
||||||
### setting flag ###
|
### Restic Flags ###
|
||||||
set +H #
|
set +H # ?????
|
||||||
|
|
||||||
### Restic Konfiguration ###
|
### Restic Konfiguration ###
|
||||||
export RESTIC_REPOSITORY="rest:http://<ip>:<port>/repository/"
|
export RESTIC_REPOSITORY="rest:http://<ip>:<port>/repository/"
|
Reference in New Issue
Block a user