Update Readme.md

This commit is contained in:
2026-04-21 20:23:55 +02:00
parent 7837c81d17
commit ef956c99c9

151
README.md
View File

@@ -1,23 +1,152 @@
# MySQL Backup Skript <p align="center">
<a href="https://techniverse.net">
<img src="https://assets.techniverse.net/f1/git/graphics/repo-techniverse-logo.png" alt="Techniverse Community" height="70" />
</a>
</p>
Dieses Bash-Skript ermöglicht das automatische Erstellen und Verwalten von MySQL-Datenbank-Backups. <h1 align="center">MySQL Backup Bash Script</h1>
## Verwendung <h4 align="center">
Automatisches Erstellen und Verwalten von MySQL-Datenbank-Backups via Bash-Skript
</h4>
1. Passe die MySQL-Serverinformationen im Skript an, einschließlich Hostname/IP-Adresse, Benutzername, Passwort und Datenbankname. <h6 align="center">
<a href="https://www.cleveradmin.de">🏰 Website</a>
·
<a href="https://techniverse.net">📰 Community</a>
·
<a href="https://social.techniverse.net/@donnerwolke">🐘 Mastodon</a>
·
<a href="https://matrix.to/#/#support:techniverse.net">💬 Support</a>
</h6>
<br><br>
2. Konfiguriere das Backup-Verzeichnis und die maximale Anzahl von Backups im Skript. ## 📋 Übersicht
3. Führe das Skript aus, um ein Backup der angegebenen Datenbank zu erstellen. 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.
## Funktionen ## Funktionen
- Erstellt ein MySQL-Dump der angegebenen Datenbank und speichert es in einer Backup-Datei. - 🗃️ 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
- Überprüft den Erfolg des Backup-Vorgangs und gibt entsprechende Meldungen aus. ## 🚀 Schnellstart
- Löscht ältere Backups, wenn die maximale Anzahl überschritten wird, um den Speicherplatz zu begrenzen. ### 1. Skript herunterladen
## Lizenz Lade die neueste Version des Skripts herunter:
```bash
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:
```bash
# 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
```bash
chmod +x mysql-backup.v1.sh
```
### 4. Backup ausführen
```bash
# 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:
```bash
# 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](https://dev.mysql.com/doc/refman/8.0/en/option-files.html) (`.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:
```bash
# 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](LICENSE). Dieses Skript steht unter der [MIT-Lizenz](LICENSE).
<br><br>
<p align="center">
<img src="https://assets.techniverse.net/f1/git/graphics/gray0-catonline.svg" alt="">
</p>
<p align="center">
<sub>
© Patrick Asmus · Techniverse Network · <a href="./LICENSE">Lizenz</a>
</sub>
</p>