Level 4: Wie ein Skript meinen Server killte (Und warum du Backups brauchst)
Geschrieben von Joachim
Methode A: Das Bash-Skript
Wenn du kein Drupal-spezifisches Tool nutzen willst, ist ein Bash-Skript der Standard. Es exportiert deine Datenbank, komprimiert sie und legt sie sicher ab. Hier ist das Skript, das ich mir damals gewünscht hätte:
#!/bin/bash
# --- KONFIGURATION (hier deine Daten eintragen) ---
DB_USER="dein_benutzername"
DB_PASSWORD="dein_passwort"
DB_NAME="name_der_datenbank"
BACKUP_DIR="/var/backups/mysql"
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
# --- START DER SICHERUNG ---
# 1. Backup-Verzeichnis anlegen, falls es fehlt
mkdir -p $BACKUP_DIR
# 2. Datenbank exportieren
mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql
# 3. Datei komprimieren
gzip $BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql
# 4. Optional: alte Backups aufräumen (Vorsicht bei der Aktivierung!)
# find $BACKUP_DIR -type f -name "*.gz" -mtime +7 -exec rm {} \;
echo "Backup erfolgreich: $BACKUP_DIR/$DB_NAME-$TIMESTAMP.sql.gz"
Der Automatismus: Cronjob
Ein Skript bringt nichts, wenn du vergisst, es auszuführen. Öffne deine Crontab mit crontab -e und füge diese Zeile ein:
0 3 * * * /pfad/zu/deinem/backup_script.sh
Das bedeutet: jeden Tag um 03:00 Uhr morgens, während du schläfst, werden deine Daten gesichert.
Methode B: Der Drush-Weg
Als Drupal-Nutzer hast du ein Werkzeug, das anderen fehlt: Drush. Es kennt deine Datenbank-Zugangsdaten bereits aus der settings.php – du musst keine Passwörter in Skripte schreiben. Der Befehl für ein sofortiges, gezipptes Backup:
drush sql:dump --gzip --result-file=auto --extra-dump=--no-tablespaces
Der Restore: So holst du deine Seite zurück
Stell dir vor, wie ich damals, hast du versehentlich den Server gelöscht. Aber diesmal hast du eine Datei namens db-2025-05-18.sql.gz. Dieser Befehl stellt sie wieder her:
zcat db-2025-05-18.sql.gz | mysql -u dein_user -p name_der_datenbank
zcat entpackt dein Backup, die Pipe (|) schiebt die Daten direkt in den mysql-Befehl, und deine Datenbank ist wiederhergestellt.
Fazit: Lerne aus meinem Fehler von 2013. Technik kann versagen, Skripte können fehlerhaft sein, du kannst dich vertippen. Aber mit einem automatischen Backup ist das kein Totalverlust, sondern ein kurzer Rücksetzer.