diff --git a/mysql-backup-1.0.sh b/mysql-backup-1.0.sh new file mode 100644 index 0000000..06b23de --- /dev/null +++ b/mysql-backup-1.0.sh @@ -0,0 +1,55 @@ +#!/bin/bash +########################################################################## +# .--. +# |o_o | +# |:_/ | +# // \ \ +# (| | ) +# /'\_ _/`\ +# \___)=(___/ +# +# (c) Patrick Asmus +# support@media-techport.de +# https://www.media-techport.de +########################################################################## +# Letzte Anpassung: 24.05.2023 +# Version 1.0 +########################################################################## +# mysql-backup-1.0.sh +########################################################################## +# MySQL-Server Informationen +DB_HOST="mysql-host" # Hostname oder IP-Adresse des MySQL-Servers +DB_USER="mysqlbackup" # MySQL-Benutzername +DB_PASS="passwd" # MySQL-Passwort +DB_NAME="db" # Name der zu sichernden Datenbank + +# Backup-Verzeichnis +BACKUP_DIR="/home/backup/mysql" +MAX_BACKUPS=5 + +# Erstelle das Backup-Verzeichnis, wenn es nicht vorhanden ist +mkdir -p "$BACKUP_DIR" + +# Erstelle den Dateinamen für das aktuelle Backup +CURRENT_DATE=$(date +"%Y-%m-%d_%H-%M-%S") +BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$CURRENT_DATE.sql" + +# Erstelle den MySQL-Dump +mysqldump --column-statistics=0 -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" > "$BACKUP_FILE" + +# Überprüfe, ob das Backup erfolgreich erstellt wurde +if [ $? -eq 0 ]; then + echo "Das Backup wurde erfolgreich erstellt: $BACKUP_FILE" +else + echo "Fehler beim Erstellen des Backups." + exit 1 +fi + +# Lösche ältere Backups, wenn die Anzahl der Backups die Maximalanzahl überschreitet +BACKUP_COUNT=$(ls -1 "$BACKUP_DIR/$DB_NAME-"*.sql | wc -l) +if [ "$BACKUP_COUNT" -gt "$MAX_BACKUPS" ]; then + DELETE_COUNT=$((BACKUP_COUNT - MAX_BACKUPS)) + OLDEST_BACKUPS=$(ls -1t "$BACKUP_DIR/$DB_NAME-"*.sql | tail -n $DELETE_COUNT) + echo "Lösche ältere Backups: $OLDEST_BACKUPS" + rm $OLDEST_BACKUPS +fi