Zum Inhalt springen

tar

tar (Tape ARchive) ist das klassische Unix-Werkzeug zum Erstellen von Archiven. Es fasst mehrere Dateien in einer einzigen Archiv-Datei zusammen und kann dabei optional komprimieren.

OptionBedeutung
-cArchiv creieren
-xArchiv extrahieren
-tInhalt listen
-f DATEIArchiv-Datei angeben (fast immer nötig)
-vverbose — Dateien beim Verarbeiten anzeigen
-zgzip-Komprimierung (.tar.gz)
-jbzip2-Komprimierung (.tar.bz2)
-Jxz-Komprimierung (.tar.xz)
-pDateirechte erhalten
-C VERZIn Verzeichnis wechseln vor dem Extrahieren
Terminal-Fenster
# Verzeichnis archivieren (ohne Komprimierung)
tar -cf backup.tar /home/micha/
# Mit gzip-Komprimierung
tar -czf backup.tar.gz /home/micha/
# Mit xz (besser, aber langsamer)
tar -cJf backup.tar.xz /home/micha/
# Rechte erhalten (wichtig für System-Backups)
tar -czpf backup.tar.gz /etc/
Terminal-Fenster
# Dateien auflisten
tar -tf backup.tar.gz
# Mit Details
tar -tvf backup.tar.gz
Terminal-Fenster
# Im aktuellen Verzeichnis
tar -xzf backup.tar.gz
# In ein bestimmtes Verzeichnis
tar -xzf backup.tar.gz -C /restore/
# Nur bestimmte Dateien
tar -xzf backup.tar.gz home/micha/.bashrc
Terminal-Fenster
tar -czf backup.tar.gz /home/micha/ \
--exclude="*.tmp" \
--exclude="/home/micha/.cache" \
--exclude="/home/micha/Downloads"

Vollständiges System-Backup (außer virtuellen Dateisystemen):

Terminal-Fenster
sudo tar -czpf /backup/system-$(date +%Y-%m-%d).tar.gz \
--exclude=/proc \
--exclude=/sys \
--exclude=/dev \
--exclude=/run \
--exclude=/tmp \
--exclude=/backup \
/

Datenbanken nie einfach als Dateien kopieren — stattdessen erst einen konsistenten Dump erstellen und diesen archivieren:

Terminal-Fenster
# MariaDB/MySQL
mysqldump -u root -p --all-databases > /tmp/db-dump.sql
tar -czf /backup/db-$(date +%Y-%m-%d).tar.gz /tmp/db-dump.sql
rm /tmp/db-dump.sql
# PostgreSQL
pg_dumpall -U postgres > /tmp/db-dump.sql
tar -czf /backup/db-$(date +%Y-%m-%d).tar.gz /tmp/db-dump.sql
Terminal-Fenster
# Erstellen
tar -czf archiv.tar.gz verzeichnis/ # gzip
tar -cJf archiv.tar.xz verzeichnis/ # xz (kleiner, langsamer)
# Ansehen
tar -tf archiv.tar.gz # Inhalt
tar -tvf archiv.tar.gz # Inhalt mit Details
# Extrahieren
tar -xzf archiv.tar.gz # hier
tar -xzf archiv.tar.gz -C /ziel/ # woanders