2023-07-11 18:01:24 +00:00
|
|
|
#!/bin/bash
|
2023-07-14 23:31:35 +00:00
|
|
|
# Script Name: mysql-backup.v1.sh
|
|
|
|
# Beschreibung: Sichert MySQL Datenbanken weg
|
|
|
|
# Aufruf: bash ./mysql-backup.v1.sh
|
|
|
|
# Autor: Patrick Asmus
|
|
|
|
# Web: https://www.media-techport.de
|
|
|
|
# Git-Reposit.: https://git.media-techport.de/scriptos/mysql-backup-bash-script
|
|
|
|
# Version: 1.0.1
|
|
|
|
# Datum: 15.07.2023
|
|
|
|
# Modifikation: Header angepasst
|
|
|
|
#####################################################
|
|
|
|
|
2023-07-11 18:01:24 +00:00
|
|
|
# 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
|