Backup auf Cloud-Speicher mit rclone und Backblaze B2¶
rclone ist ein Kommandozeilen-Tool das Dateien mit über 70 Cloud-Providern synchronisieren kann. In dieser Anleitung verwenden wir Backblaze B2 als Ziel – kostenlos bis 10 GB.
1. Backblaze B2 einrichten¶
- Konto erstellen auf backblaze.com (kostenlos)
- Im Dashboard: Buckets → Create a Bucket
- Bucket name: z.B.
m158-backup-vorname - Files in Bucket: Private
- Application Key erstellen: B2 Cloud Storage → App Keys → Add a New Application Key
- Name: z.B.
backup-key - Zugriff nur auf deinen Bucket einschränken
- Notiere
keyIDundapplicationKey– das Passwort wird nur einmal angezeigt!
2. rclone installieren¶
Version prüfen:
3. rclone mit Backblaze B2 konfigurieren¶
Folge dem interaktiven Dialog:
n) New remote
name> backblaze
Storage> b2 # Backblaze B2
account> DEINE_KEY_ID
key> DEIN_APPLICATION_KEY
Konfiguration testen:
Du solltest deinen Bucket sehen. Dateien im Bucket auflisten:
4. rclone im Backup-Skript verwenden¶
Exitcodes prüfen und Errorlog schreiben¶
Jeder Befehl gibt einen Exitcode zurück: 0 = Erfolg, alles andere = Fehler. Im Skript prüfst du diesen nach jedem kritischen Schritt:
#!/bin/bash
LOGFILE="/var/log/backup.log"
BUCKET="backblaze:m158-backup-vorname"
BACKUP_DIR="/var/backups/wordpress"
DATE=$(date +"%Y-%m-%d_%H-%M")
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOGFILE"
}
# Backup-Verzeichnis erstellen
mkdir -p "$BACKUP_DIR"
# Datenbank-Backup
log "Starte Datenbank-Backup..."
mysqldump -u root wordpress | gzip > "$BACKUP_DIR/db_$DATE.sql.gz"
if [ $? -ne 0 ]; then
log "FEHLER: Datenbank-Backup fehlgeschlagen"
exit 1
fi
log "Datenbank-Backup erfolgreich"
# Datei-Backup
log "Starte Datei-Backup..."
tar -czf "$BACKUP_DIR/files_$DATE.tar.gz" /var/www/html
if [ $? -ne 0 ]; then
log "FEHLER: Datei-Backup fehlgeschlagen"
exit 1
fi
log "Datei-Backup erfolgreich"
# Upload zu Backblaze B2
log "Starte Upload zu Backblaze B2..."
rclone copy "$BACKUP_DIR" "$BUCKET" --log-file="$LOGFILE" --log-level INFO
if [ $? -ne 0 ]; then
log "FEHLER: Upload zu Backblaze fehlgeschlagen"
exit 1
fi
log "Upload erfolgreich"
# Alte Backups löschen (älter als 7 Tage)
find "$BACKUP_DIR" -type f -mtime +7 -delete
log "Alte Backups bereinigt"
log "Backup abgeschlossen"
Warum $??¶
$? enthält den Exitcode des letzten ausgeführten Befehls. 0 bedeutet Erfolg, jeder andere Wert ist ein Fehler. Mit if [ $? -ne 0 ] prüfst du ob der vorherige Befehl fehlgeschlagen ist.
5. Skript testen¶
# Skript ausführbar machen
chmod +x /usr/local/bin/backup.sh
# Manuell ausführen und Log beobachten
bash /usr/local/bin/backup.sh
# Log anzeigen
cat /var/log/backup.log
# Dateien im Bucket prüfen
rclone ls backblaze:m158-backup-vorname
6. Häufige Fehler¶
| Fehler | Ursache |
|---|---|
Failed to create file system: didn't find section in config |
rclone Remote nicht konfiguriert oder falscher Name |
Error: Access Denied |
Application Key hat keinen Zugriff auf den Bucket |
command not found: rclone |
rclone nicht installiert oder nicht im PATH |
Exitcode 1 beim mysqldump |
Falscher Datenbankname oder Benutzer ohne Rechte |