Tutorial: Tar-Archive unter Linux erstellen und Verzeichnisse ausschließen

Melden

Hier ist ein kompaktes Tutorial für Systemadministratoren, das erklärt, wie man unter Linux Verzeichnisse beim Erstellen eines Tar-Archivs ausschließt.

In der Systemadministration ist es oft notwendig, Backups von Verzeichnissen zu erstellen, dabei aber bestimmte Daten wie Caches, Log-Dateien oder temporäre Ordner zu ignorieren. Der Befehl tar bietet hierfür die Option --exclude.


1. Die Grundsyntax

Um ein Verzeichnis beim Archivieren auszuschließen, wird die Flag --exclude verwendet.

Wichtig: Die --exclude Option muss vor dem Quellverzeichnis stehen.

tar -czvf archivname.tar.gz --exclude='verzeichnis_name' /pfad/zum/quellverzeichnis
  • -c: Erstellt ein neues Archiv (create).
  • -z: Komprimiert das Archiv mit gzip.
  • -v: Zeigt den Fortschritt an (verbose).
  • -f: Bestimmt den Dateinamen des Archivs.
  • --exclude: Definiert das auszuschließende Muster.

2. Ein einzelnes Verzeichnis ausschließen

Angenommen, du möchtest das Verzeichnis /var/www/html sichern, aber den Ordner uploads weglassen:

tar -czvf website_backup.tar.gz --exclude='uploads' /var/www/html

Hinweis: Gib beim Ausschluss-Pfad keinen abschließenden Slash (/) an (also uploads statt uploads/), da dies sonst zu Problemen bei der Mustererkennung führen kann.


3. Mehrere Verzeichnisse ausschließen

Wenn du mehrere Ordner ignorieren möchtest, kannst du die --exclude Flag einfach mehrfach verwenden:

tar -czvf backup.tar.gz --exclude='node_modules' --exclude='.git' --exclude='temp' /mein/projekt

4. Ausschluss basierend auf Mustern (Wildcards)

Du kannst auch Platzhalter verwenden, um beispielsweise alle Log-Dateien in allen Unterverzeichnissen auszuschließen:

tar -czvf backup.tar.gz --exclude='*.log' /var/log

5. Eine Ausschlussliste aus einer Datei verwenden

Bei sehr vielen auszuschließenden Verzeichnissen ist es effizienter, eine Textdatei zu erstellen (z. B. exclude_list.txt), in der jedes auszuschließende Muster in einer neuen Zeile steht.

Inhalt der exclude_list.txt:

tmp
cache
*.mp4
logs

Befehl:

tar -czvf backup.tar.gz -X exclude_list.txt /pfad/zum/quellverzeichnis

Die Flag -X (oder --exclude-from) liest die Liste der auszuschließenden Dateien/Ordner ein.


6. Häufige Fehler vermeiden

  1. Reihenfolge der Argumente: Die Option --exclude muss zwingend vor dem Namen des Quellverzeichnisses stehen.
    • ✅ Richtig: tar -cf archiv.tar --exclude='pfad' quelle
    • ❌ Falsch: tar -cf archiv.tar quelle --exclude='pfad' (Dies würde den Ausschluss ignorieren).
  2. Relative vs. Absolute Pfade: Wenn du absolute Pfade für die Quelle verwendest, muss das Ausschlussmuster exakt darauf abgestimmt sein. Es ist meist einfacher, in das Verzeichnis zu wechseln (cd) und mit relativen Pfaden zu arbeiten.
  3. Anführungszeichen: Setze das auszuschließende Muster immer in einfache Anführungszeichen ('...'), um zu verhindern, dass die Shell Platzhalter wie * vorab interpretiert.

Zusammenfassung für den Admin-Alltag

Für ein schnelles Backup eines Web-Projekts ohne Cache und Git:

tar -czvf full_backup.tar.gz --exclude='.git' --exclude='cache/*' /pfad/zu/den/daten
0