Appearance
Projekt 3: Linux-Systembackup und -wiederherstellung
Projektbeschreibung
In diesem Projekt lernen wir, wie man wichtige Dateien und Verzeichnisse unter Linux mit tar sichert und wiederherstellt.
Lernziele
tar-Befehl zum Archivieren und Komprimieren verwenden- Backup-Strategien entwickeln
- Automatische Backups mit Cron-Jobs einrichten
- Backup-Dateien überprüfen und wiederherstellen
Projektanforderungen
- Wichtige Dateien und Verzeichnisse mit
tararchivieren - Backup-Dateien komprimieren
- Backup-Prozess automatisieren (Cron-Job)
- Backup-Dateien überprüfen
- Dateien aus Backup wiederherstellen
Schritt-für-Schritt-Anleitung
Schritt 1: Backup-Verzeichnis erstellen
bash
sudo mkdir -p /backup
sudo chmod 755 /backupSchritt 2: Wichtige Verzeichnisse identifizieren
Zu sichernde Verzeichnisse könnten sein:
/home: Benutzerverzeichnisse/etc: Konfigurationsdateien/var/log: Protokolldateien/var/www: Webseiten-Dateien
Schritt 3: Manuelles Backup mit tar erstellen
Einfaches Backup erstellen:
bash
# Syntax: tar -czvf backup_datei.tar.gz zu_sichernde_verzeichnisse
sudo tar -czvf /backup/home_backup_$(date +%Y%m%d).tar.gz /homeErklärung der Optionen:
-c: Erstellt ein neues Archiv-z: Komprimiert mit gzip-v: Zeigt den Fortschritt an (verbose)-f: Gibt den Dateinamen des Archivs an$(date +%Y%m%d): Fügt das aktuelle Datum zum Dateinamen hinzu
Mehrere Verzeichnisse gleichzeitig sichern:
bash
sudo tar -czvf /backup/system_backup_$(date +%Y%m%d).tar.gz /home /etc /var/logSchritt 4: Backup-Datei überprüfen
Inhalt des Archivs auflisten:
bash
tar -tzvf /backup/home_backup_20240527.tar.gzErklärung der Optionen:
-t: Listet den Inhalt des Archivs auf-z: Dekomprimiert mit gzip (bei Überprüfung notwendig)-v: Zeigt detaillierte Informationen an-f: Gibt den Dateinamen des Archivs an
Schritt 5: Dateien aus Backup wiederherstellen
Gesamtes Archiv wiederherstellen:
bash
sudo tar -xzvf /backup/home_backup_20240527.tar.gz -C /Einzelne Datei wiederherstellen:
bash
sudo tar -xzvf /backup/home_backup_20240527.tar.gz -C / home/benutzer/datei.txtErklärung der Optionen:
-x: Extrahiert Dateien aus dem Archiv-C: Wechselt vor der Extraktion in das angegebene Verzeichnis
Schritt 6: Automatisches Backup mit Cron-Job einrichten
Backup-Skript erstellen:
bash
sudo vim /backup/backup_skript.shFügen Sie folgenden Inhalt hinzu:
bash
#!/bin/bash
# Konfiguration
BACKUP_DIR="/backup"
ZEITSTEMPEL=$(date +%Y%m%d_%H%M%S)
BACKUP_DATEI="$BACKUP_DIR/backup_$ZEITSTEMPEL.tar.gz"
# Zu sichernde Verzeichnisse
QUELLEN="/home /etc /var/log"
# Backup erstellen
echo "Starte Backup: $BACKUP_DATEI"
tar -czvf "$BACKUP_DATEI" $QUELLEN
# Alte Backups löschen (älter als 7 Tage)
find "$BACKUP_DIR" -name "backup_*.tar.gz" -mtime +7 -delete
echo "Backup abgeschlossen: $BACKUP_DATEI"Skript ausführbar machen:
bash
sudo chmod +x /backup/backup_skript.shCron-Job einrichten:
bash
sudo crontab -eFügen Sie folgende Zeile hinzu (tägliches Backup um 2 Uhr morgens):
0 2 * * * /backup/backup_skript.sh >> /backup/backup.log 2>&1Schritt 7: Backup-Strategie optimieren
Inkrementelles Backup: Anstatt jedes Mal ein vollständiges Backup zu erstellen, können Sie inkrementelle Backups verwenden.
rsync für inkrementelles Backup verwenden:
bash
# Installation (falls nicht vorhanden)
sudo apt install rsync # Ubuntu/Debian
sudo yum install rsync # CentOS/RHEL
# Inkrementelles Backup mit rsync
rsync -av --delete /home/ /backup/home_incrementell/Erklärung der Optionen:
-a: Archivmodus (behält Berechtigungen, Datum usw.)-v: Zeigt Fortschritt an--delete: Löscht Dateien im Ziel, die in der Quelle nicht mehr existieren
Schritt 8: Backup auf externen Speicher kopieren
Backup auf USB-Stick kopieren:
bash
# USB-Stick einhängen
sudo mount /dev/sdb1 /mnt
# Backup kopieren
sudo cp /backup/backup_20240527.tar.gz /mnt/
# Auswerfen
sudo umount /mntBackup in die Cloud kopieren (mit rclone):
bash
# rclone installieren und konfigurieren
curl https://rclone.org/install.sh | sudo bash
rclone config
# Backup hochladen
rclone copy /backup/backup_20240527.tar.gz remote:backup_ordnerFehlerbehebung
Problem 1: "Permission denied" beim Erstellen des Backups
- Lösung:
sudoverwenden oder Berechtigungen mitchmodanpassen
Problem 2: Nicht genügend Speicherplatz
- Lösung:bash
df -h # Speicherplatz überprüfen sudo rm -f /backup/altes_backup.tar.gz # Alte Backups löschen
Problem 3: Backup-Datei ist beschädigt
- Lösung:bash
tar -tzvf backup_datei.tar.gz # Archiv auf Beschädigung prüfen
Projekterweiterungen
- Backup-Verschlüsselung: Backup-Dateien mit GPG verschlüsseln
- Backup-Benachrichtigung: E-Mail senden, wenn Backup abgeschlossen ist
- Backup-Überwachung: Überwachungsskript erstellen, das prüft, ob Backup erfolgreich war
- Externe Festplatte: Backup auf externe Festplatte automatisieren
Projektzusammenfassung
In diesem Projekt haben wir:
- Manuelles Backup mit
tarerstellt - Backup-Dateien komprimiert und überprüft
- Dateien aus Backup wiederhergestellt
- Automatisches Backup mit Cron-Job eingerichtet
Wichtige Befehle, die verwendet wurden:
tar -czvf: Backup erstellen (komprimiert)tar -tzvf: Backup-Inhalt auflistentar -xzvf: Backup extrahierenrsync -av: Inkrementelles Backupcrontab -e: Cron-Job erstellen
