This commit is contained in:
scriptos 2023-09-03 19:49:03 +02:00
parent b18a7736a9
commit 9c8e60987d
2 changed files with 63 additions and 2 deletions

View File

@ -1,3 +1,15 @@
# backupscript-collection
# Mein Repository für Backup-Skripte
Eine kleine Sammlung an verschiedenen Backup-Scripten
Dieses Repository dient als Plattform für eine Sammlung von Backup-Skripten. Hier werden Backup-Skripte gespeichert, versioniert und bearbeitet.
## Beschreibung
Dieses Repository enthält eine Sammlung von Backup-Skripten, die für verschiedene Zwecke und Systeme entwickelt wurden. Es bietet eine zentrale Plattform zur Verwaltung dieser Skripte.
## Verwendung
1. **Klonen des Repositorys:** Um die Backup-Skripte herunterzuladen und zu verwenden, führe den folgenden Befehl aus:
```bash
git clone https://git.media-techport.de/scriptos/backup-script-collection.git
```

49
mariadb-backup.v1.sh Normal file
View File

@ -0,0 +1,49 @@
#!/bin/bash
# Script Name: MARIADB_BACKUP.V1.SH
# Beschreibung: Macht ein Backup aller MariaDB-Datenbanken in ein Verzeichnis der Wahl
# Aufruf: ./bash MARIADB_BACKUP.V1.SH
# Autor: Patrick Asmus
# Web: https://www.media-techport.de
# Git-Reposit.: https://git.media-techport.de/scriptos/backup-script-collection
# Version: 2.0
# Datum: 03.09.2023
# Modifikation: Neuerstellung
#####################################################
# Variablen
SCRIPT_NAME="mariadb-backup.v1.sh"
BACKUP_DIR="/var/backup"
LOGDIR="/var/log/script-logs"
EMAIL_ADDRESS="system@media-techport.de"
HOSTNAME=$(hostname)
DB_USER="mysqlbackup"
DB_PASSWORD="PASSWORD"
BACKUP_RETENTION_DAYS=20
# Erstelle Log-Verzeichnis
mkdir -p $LOGDIR
# Sichern jeder Datenbank in separater SQL-Datei
DATABASES=$(mysql -u "$DB_USER" -p"$DB_PASSWORD" -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|mysql|sys)")
ERROR_OCCURRED=0
for DB in $DATABASES; do
DATE=$(date +%F)
BACKUP_FILE="$BACKUP_DIR/$DB-$DATE.sql"
echo "Sichere $DB-Datenbank in $BACKUP_FILE" | tee -a "$LOGDIR/$SCRIPT_NAME.log"
mysqldump -u "$DB_USER" -p"$DB_PASSWORD" "$DB" > "$BACKUP_FILE"
if [ $? -ne 0 ]; then
ERROR_OCCURRED=1
echo "Fehler beim Sichern der $DB-Datenbank" | tee -a "$LOGDIR/$SCRIPT_NAME.log"
fi
done
# Loeschen von Backups, die aelter als X Tage sind
find "$BACKUP_DIR" -type f -name "*.sql" -mtime +$BACKUP_RETENTION_DAYS -delete
# Ueberpruefe, ob das Backup erfolgreich war oder Probleme aufgetreten sind
if [ $ERROR_OCCURRED -eq 1 ]; then
echo "Backup konnte nicht ausgefuehrt werden." | tee -a "$LOGDIR/$SCRIPT_NAME.log"
mail -s "Fehler beim Ausführen des MariaDB-Backups auf $HOSTNAME" "$EMAIL_ADDRESS" < "$LOGDIR/$SCRIPT_NAME.log"
fi
exit 0