In diesem Artikel zeige ich dir, wie du ein Backup-Skript für deine Docker-Volumes auf deinem Raspberry Pi erstellst. Ein Backup deiner Daten ist essenziell, insbesondere wenn du Docker auf einem Raspberry Pi einsetzt, da diese Geräte oft als Server oder stabile Lösung für kleine Projekte dienen.
Warum ein Backup-Skript?
Die Docker-Volumes enthalten die persistenten Daten deiner Container, ohne die viele Container nicht korrekt funktionieren würden. Ein Backup bietet Schutz vor Datenverlust, Hardware-Ausfällen und menschlichen Fehlern.
Vorbereitung
Hier sind die Voraussetzungen:
- Ein laufender Raspberry Pi mit Docker installiert
- Grundlegende Kenntnisse in der Shell und Docker
- Ein günstiger Speicherort für die Backups (z.B. eine externe Festplatte oder ein Netzwerk-Speicher)
Das Backup-Skript
Hier das vollständige Backup-Skript:
#!/bin/bash
# Setup variables
DATE=$(date +%Y-%m-%d_%H-%M-%S)
BACKUP_DIR="/path/to/backup/$DATE"
VOLUMES=$(docker volume ls -q)
# Create backup directory
mkdir -p $BACKUP_DIR
# Function to backup each volume
backup_volume() {
VOLUME=$1
docker run --rm -v $VOLUME:/volume -v $BACKUP_DIR:/backup ubuntu tar -czf /backup/$VOLUME.tar.gz -C /volume .
}
# Loop through each volume and backup
for VOLUME in $VOLUMES
do
echo "Backing up volume $VOLUME..."
backup_volume $VOLUME
echo "Volume $VOLUME backed up successfully."
done
# Cleanup old backups (older than 7 days)
find /path/to/backup/ -type d -mtime +7 -exec rm -rf {} \;
echo "Backup completed."
Erklärung des Backups-Skripts
- DATE: Das aktuelle Datum und Uhrzeit werden gespeichert
- BACKUP_DIR: Definiert das Zielverzeichnis für die Backups
- VOLUMES: Holt eine Liste aller Docker-Volumes im System
- mkdir -p: Erstellt das Backup-Verzeichnis
- backup_volume: Funktion zum Backup eines Volumes mit docker run, tar und gzip
- for loop: Durchläuft alle Volumes und führt die Backup-Funktion aus
- find: Löscht alte Backups, die älter als 7 Tage sind
Wie du das Skript ausführst
Um das Skript auszuführen, speichere den obigen Code in einer Datei, z.B. `backup_docker_volumes.sh`. Mache die Datei ausführbar:
chmod +x backup_docker_volumes.sh
Starte das Skript mit:
./backup_docker_volumes.sh
Automatisierung des Backups
Du kannst dieses Backup-Skript mithilfe von cron jobs automatisieren:
crontab -e
Und füge die folgende Zeile hinzu, um das Skript jeden Tag um 2 Uhr morgens auszuführen:
0 2 * * * /path/to/backup_docker_volumes.sh
Mit dieser Anleitung kannst du sicherstellen, dass deine Docker-Volumes regelmäßig gesichert werden, und somit den Schutz deiner wichtigen Daten auf deinem Raspberry Pi erhöhen.