Tutorial: Tar-Archive unter Linux erstellen und Verzeichnisse ausschließen
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
- Reihenfolge der Argumente: Die Option
--excludemuss 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).
- ✅ Richtig:
- 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. - 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