Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:tar

tar

Hauptoptionen
c --create tar Archiv erstellen
x --extract tar Archiv auspacken
t --list tar Archiv anzeigen
d --diff tar Archiv vergleichen
weitere Optionen
f --file tar Archiv in angegebene Datei schreiben bzw. aus angegebener Datei lesen
l --one-file-system keine Mountpoints sichern, bleibe auf dem Start-Dateisytem
z --gzip gzip Komprimierung: geringere Komprimierung, nicht reparierbar bei Fehlern, geringer Rechenaufwand
j --bzip2 bzip2 Komprimierung: höhere Komprimierung, größere Datensicherheit, mehr Rechenaufwand im Vergleich zu gzip
J --xz xz Komprimierung: noch höhere Komprimierung, noch mehr Rechenaufwand
--zstd zstd Komprimierung: noch höhere Komprimierung, weniger Rechenaufwand, threaded
--numeric-owner Nicht die Namen, sondern die Nummern der Benutzer sollen gesichert werden. Notwendig bei der Sicherung des kompletten Systems
--acl ACLs mitsichern bzw. wiederherstellen
--xattrs erweiterte Attribute (für SELinux, Capabilities, o.ä.) mitsichern
C --directory ins Verzeichnis wechseln

tar und gzip

1)

Verzeichnis archivieren:

tar cf directory.tar directory/

Archiv komprimieren:

gzip directory.tar

Archiv entpacken:

gunzip directory.tar.gz

unkomprimiertes Archiv ansehen:

tar tf directory.tar

komprimiertes Archiv ansehen:

tar tzf directory.tar.gz

Archiv auspacken:

tar xf directory.tar

tar

Verzeichnis archivieren und komprimieren:

tar czf directory.tgz directory/

komprimiertes Archiv ansehen:

tar tzf directory.tgz

komprimiertes Archiv auspacken:

tar xzf directory.tgz

Sicherung des root-Dateisystems auf Band

Sicherung:

tar cf /dev/st0 --directory / --one-file-system --numeric-owner .

Überprüfung der Sicherung: (im tar-Archiv fehlende Dateien werden nicht angezeigt 2) )

tar df /dev/st0 --directory / --one-file-system --numeric-owner .

Sicherung in Datei auf entfernten Rechner mit ssh

tar-Archiv auf Rechner notebook02 anlegen:

tar cj --directory /usr/share doc | ssh notebook02 'cat > /tmp/doc.tar.bz2'

Wiederherstellung:

ssh notebook02 'cat /tmp/doc.tar.bz2' | tar xj --directory /usr/share

Dateien kopieren mit sudo, tar und ssh

Datei incl. Berechtigungen von notebook01 auf notebook02 kopieren: 3)

ssh notebook01 'sudo tar cP /etc/ssl/certs/service.linuxhotel.de.cert.pem /etc/ssl/private/service.linuxhotel.de.key.pem' | ssh notebook02 'sudo tar xP'

4)

Verzeichnisse kopieren mit sudo, tar und netcat

Unter Debian (6) getestet, unter CentOS wahrscheinlich andere Schalter.

Empfänger

netcat -l -s 172.16.240.155 -p 6666 | sudo tar xz --directory /mnt/kopie

5)

Sender

tar cz --numeric-owner --directory /mnt/original . | nc -q0 -T reliability 172.16.240.155 6666

erweiterte Attribute, ACLs, Capabilities

testen, klappt evtl nur mit RH-Version und tar ab Version 1.27

Todo: unter CentOS 7 getestet. Was ist mit debian und tar Version 1.27?

The default ACL values have incorrectly been filled in, using the values of the directory's access permissions. Dieser Bug ist unter CentOS bekannt: https://bugs.centos.org/view.php?id=7696 Diesen Bug gibt es aber auch unter Debian, in tar aus den Backports. Wahrscheinlich auch unter jessie.

tar -c --numeric-owner --xattrs --acls --one-file-system --directory / . | ssh nutzer06@notebook06 sudo tar x --xattrs --acls --xattrs-include='*' --directory /mnt/backup/tar

6)

Systembackup

Systemverzeichnisse ermitteln:

df -hT -x tmpfs -x deftmpfs

Alle Systemverzeichnise auf Server sichern:

sudo tar c --one-file-system --numeric-owner / /boot /boot/efi | zstd | ssh nutzer45@notebook45 'cat > /mnt/backup.tar.zstd'

Grenzen von tar

1)
wird man in der Praxis so selten verwenden, nur um zu zeigen das tar und gzip zwei verschiedene Aufgaben erfüllen.
2)
Auch die kann man sich raussuchen, aber mir fällt dazu nur eine etwas mühevolle Lösung ein:
tar tf /dev/md0 | sort > /run/tar.list
(cd / && find . -xdev \( -type d -printf "%p/\n" , ! \( -type d -o -type s \) -print \)) | sort  | comm --total -2 -3 - /run/tar.list
3)
überschreibt ohne zu Fragen!
4)
alternativ, incl. Anzeige der Übertragung:
ssh notebook01 'sudo tar cP /etc/ssl/certs/service.linuxhotel.de.cert.pem /etc/ssl/private/service.linuxhotel.de.key.pem' | ssh notebook02 'pv -b -r | sudo tar xP'
5)
alternativ, incl. Anzeige der Übertragung:
netcat -l -s 172.16.240.155 -p 6666 | pv -b -r | sudo tar xz --directory /mnt/kopie
admin_grundlagen/tar.txt · Zuletzt geändert: 2024/05/24 10:14 (Externe Bearbeitung)