====== 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 ===== (( wird man in der Praxis so selten verwenden, nur um zu zeigen das //tar// und //gzip// zwei verschiedene Aufgaben erfüllen. )) 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 (( 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 )) ) 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: (( überschreibt ohne zu Fragen! )) 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' ((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' )) ====== 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 ((alternativ, incl. Anzeige der Übertragung: netcat -l -s 172.16.240.155 -p 6666 | pv -b -r | sudo tar xz --directory /mnt/kopie )) ===== 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 ((https://bugzilla.redhat.com/show_bug.cgi?id=771927)) ====== 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 ====== * https://www.cyphar.com/blog/post/20190121-ociv2-images-i-tar