2023-07-14 23:33:23 +00:00
2023-07-14 23:31:35 +00:00
2026-04-21 20:26:57 +02:00

Techniverse Community

MySQL Backup Bash Script

Automatisches Erstellen und Verwalten von MySQL-Datenbank-Backups via Bash-Skript

🏰 Website · 📰 Community · 🐘 Mastodon · 💬 Support


📋 Übersicht

Dieses Bash-Skript automatisiert das Erstellen und Verwalten von MySQL-Datenbank-Backups. Es erstellt einen Dump der konfigurierten Datenbank, speichert ihn mit einem Zeitstempel im Dateisystem und räumt automatisch alte Backups auf, um Speicherplatz zu sparen.

📖 Weiterlesen

Funktionen

  • 🗃️ Erstellt einen vollständigen MySQL-Dump der konfigurierten Datenbank
  • Überprüft den Erfolg des Backup-Vorgangs und gibt statusmeldungen aus
  • 🧹 Automatisches Bereinigen älterer Backups basierend auf einem konfigurierbaren Limit
  • 📅 Zeitgestützte Dateinamen für einfache Identifizierung und Sortierung
  • 🔧 Einfache Konfiguration direkt im Skript

🚀 Schnellstart

1. Skript herunterladen

Lade die neueste Version des Skripts herunter:

curl -O https://git.techniverse.net/scriptos/mysql-backup-bash-script/src/branch/main/mysql-backup.v1.sh

2. Konfiguration anpassen

Öffne das Skript und passe die folgenden Werte an:

# MySQL-Server Informationen
DB_HOST="dein-mysql-host"      # Hostname oder IP-Adresse
DB_USER="dein-benutzername"    # MySQL-Benutzername
DB_PASS="dein-passwort"        # MySQL-Passwort
DB_NAME="deine-datenbank"      # Name der Datenbank

# Backup-Einstellungen
BACKUP_DIR="/pfad/zum/backup"  # Zielverzeichnis für Backups
MAX_BACKUPS=5                  # Maximale Anzahl aufbewahrter Backups

3. Skript ausführbar machen

chmod +x mysql-backup.v1.sh

4. Backup ausführen

# Manuell
./mysql-backup.v1.sh

# Oder mit bash
bash ./mysql-backup.v1.sh

⚙️ Konfiguration

Variable Beschreibung Standardwert
DB_HOST MySQL-Server Hostname/IP mysql-host
DB_USER MySQL-Benutzername mysqlbackup
DB_PASS MySQL-Passwort passwd
DB_NAME Datenbankname db
BACKUP_DIR Backup-Zielverzeichnis /home/backup/mysql
MAX_BACKUPS Maximale Backup-Anzahl 5

🕐 Automatisierung mit Cron

Füge das Skript zur Crontabelle hinzu, um regelmäßige Backups zu erstellen:

# Täglich um 2:00 Uhr
0 2 * * * /bin/bash /pfad/zum/mysql-backup.v1.sh >> /var/log/mysql-backup.log 2>&1

# Wöchentlich jeden Sonntag um 3:00 Uhr
0 3 * * 0 /bin/bash /pfad/zum/mysql-backup.v1.sh >> /var/log/mysql-backup.log 2>&1

📁 Backup-Dateien

Backups werden im konfigurierten BACKUP_DIR mit folgendem Namensschema gespeichert:

<DB_NAME>-<YYYY-MM-DD_HH-MM-SS>.sql

Beispiel: meine-datenbank-2023-07-15_02-00-00.sql

🔒 Sicherheitshinweise

  • 🔑 Speichere Zugangsdaten niemals unverschlüsselt im Skript verwende stattdessen eine MySQL-Option-Datei (.my.cnf)
  • 📂 Beschränke den Zugriff auf das Backup-Verzeichnis (chmod 700)
  • 🛡️ Verwende einen dedizierten Backup-Benutzer mit minimalen Berechtigungen
  • 💾 Speichere Backups niemals nur lokal nutze zusätzliche externe Speicherorte

🧪 Testen

Du kannst das Skript mit einem Test-MySQL-Container ausprobieren:

# MySQL Test-Container starten
docker run --name mysql-test -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=testdb -p 3306:3306 -d mysql:latest

# Skript anpassen und testen
# DB_HOST="localhost"
# DB_USER="root"
# DB_PASS="root"
# DB_NAME="testdb"

# Backup ausführen
./mysql-backup.v1.sh

# Container aufräumen
docker rm -f mysql-test

📜 Lizenz

Dieses Skript steht unter der MIT-Lizenz.



© Patrick Asmus · Techniverse Network · Lizenz

Description
No description provided
Readme MIT 32 KiB
Languages
Shell 100%