diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 3fd5d93..0000000 Binary files a/.DS_Store and /dev/null differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/Aliases/docker.sh b/Alias/Aliases/docker.sh similarity index 100% rename from Aliases/docker.sh rename to Alias/Aliases/docker.sh diff --git a/Aliases/git.sh b/Alias/Aliases/git.sh similarity index 100% rename from Aliases/git.sh rename to Alias/Aliases/git.sh diff --git a/Aliases/terminal.sh b/Alias/Aliases/terminal.sh similarity index 100% rename from Aliases/terminal.sh rename to Alias/Aliases/terminal.sh diff --git a/aliases.sh b/Alias/aliases.sh similarity index 100% rename from aliases.sh rename to Alias/aliases.sh diff --git a/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-09-11.sql b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-09-11.sql new file mode 100644 index 0000000..441e985 --- /dev/null +++ b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-09-11.sql @@ -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 */; diff --git a/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-15-47.sql b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-15-47.sql new file mode 100644 index 0000000..441e985 --- /dev/null +++ b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-15-47.sql @@ -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 */; diff --git a/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-22-32.sql b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-22-32.sql new file mode 100644 index 0000000..441e985 --- /dev/null +++ b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-22-32.sql @@ -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 */; diff --git a/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-25-05.sql b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-25-05.sql new file mode 100644 index 0000000..441e985 --- /dev/null +++ b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-25-05.sql @@ -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 */; diff --git a/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-25-52.sql b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-25-52.sql new file mode 100644 index 0000000..441e985 --- /dev/null +++ b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-25-52.sql @@ -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 */; diff --git a/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-28-46.sql b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-28-46.sql new file mode 100644 index 0000000..441e985 --- /dev/null +++ b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-28-46.sql @@ -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 */; diff --git a/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-31-25.sql b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-31-25.sql new file mode 100644 index 0000000..441e985 --- /dev/null +++ b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-31-25.sql @@ -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 */; diff --git a/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-31-53.sql b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-31-53.sql new file mode 100644 index 0000000..441e985 --- /dev/null +++ b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-31-53.sql @@ -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 */; diff --git a/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-32-30.sql b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-32-30.sql new file mode 100644 index 0000000..441e985 --- /dev/null +++ b/Backup/Docker/mysql/Backup/mysql-backup-test-container-TEST-2025-05-23_20-32-30.sql @@ -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 */; diff --git a/Backup/dump.log b/Backup/dump.log new file mode 100644 index 0000000..d5dc20c --- /dev/null +++ b/Backup/dump.log @@ -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 diff --git a/Backup/mysql-dumps.sh b/Backup/mysql-dumps.sh new file mode 100755 index 0000000..71d680d --- /dev/null +++ b/Backup/mysql-dumps.sh @@ -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" diff --git a/restic-backup-script.sh b/Backup/restic-backup-script.sh similarity index 95% rename from restic-backup-script.sh rename to Backup/restic-backup-script.sh index b8a567e..ace2f8a 100644 --- a/restic-backup-script.sh +++ b/Backup/restic-backup-script.sh @@ -12,8 +12,8 @@ ### Backup-Pfade ### BACKUP_PATH="/paht/to/local/directory" -### setting flag ### -set +H # +### Restic Flags ### +set +H # ????? ### Restic Konfiguration ### export RESTIC_REPOSITORY="rest:http://:/repository/"