Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
lpi2:tar [2017/10/02 08:26] 127.0.0.1 Externe Bearbeitung |
lpi2:tar [2025/03/27 12:23] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== tar ====== | ====== tar ====== | ||
- | Wichtige Optionen für tar: | + | ^ Hauptoptionen ^^^ |
| ''c'' | ''%%--create%%'' | tar Archiv erstellen | | | ''c'' | ''%%--create%%'' | tar Archiv erstellen | | ||
| ''x'' | ''%%--extract%%'' | tar Archiv auspacken | | | ''x'' | ''%%--extract%%'' | tar Archiv auspacken | | ||
| ''t'' | ''%%--list%%'' | tar Archiv anzeigen | | | ''t'' | ''%%--list%%'' | tar Archiv anzeigen | | ||
| ''d'' | ''%%--diff%%'' | tar Archiv vergleichen | | | ''d'' | ''%%--diff%%'' | tar Archiv vergleichen | | ||
+ | ^ weitere Optionen ^^^ | ||
| ''f'' | ''%%--file%%'' | tar Archiv in angegebene Datei schreiben bzw. aus angegebener Datei lesen | | | ''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 | | | ''l'' | ''%%--one-file-system%%'' | keine Mountpoints sichern, bleibe auf dem Start-Dateisytem | | ||
Zeile 10: | Zeile 11: | ||
| ''j'' | ''%%--bzip2%%'' | bzip2 Komprimierung: höhere Komprimierung, größere Datensicherheit, mehr Rechenaufwand im Vergleich zu gzip | | | ''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 | | | ''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 | | | | ''%%--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 | | | | ''%%--acl%%'' | ACLs mitsichern bzw. wiederherstellen | | ||
| | ''%%--xattrs%%'' | erweiterte Attribute (für SELinux, Capabilities, o.ä.) mitsichern | | | | ''%%--xattrs%%'' | erweiterte Attribute (für SELinux, Capabilities, o.ä.) mitsichern | | ||
+ | | ''C'' | ''%%--directory%%'' | ins Verzeichnis wechseln | | ||
- | ===== tar und gzip ===== | + | ===== Verzeichnis in lokales Archiv sichern ===== |
- | (( wird man in der Praxis so selten verwenden, nur um zu zeigen das //tar// und //gzip// zwei verschiedene Aufgaben erfüllen. )) | + | Verzeichnis ''/usr/share'' archivieren und komprimieren: |
- | + | tar -caf share.tar.gz -C /usr share | |
- | Verzeichnis archivieren: | + | |
- | tar cf directory.tar directory/ | + | |
- | Archiv komprimieren: | + | |
- | gzip directory.tar | + | |
- | Archiv entpacken: | + | |
- | gunzip directory.tar.gz | + | |
- | Archiv ansehen: | + | |
- | tar tf directory.tar | + | |
- | Archiv auspacken: | + | |
- | tar xf directory.tar | + | |
- | + | ||
- | ===== tar ===== | + | |
- | Verzeichnis archivieren und komprimieren: | + | |
- | tar czf directory.tgz directory/ | + | |
komprimiertes Archiv ansehen: | komprimiertes Archiv ansehen: | ||
- | tar tzf directory.tgz | + | tar -tf share.tar.gz |
komprimiertes Archiv auspacken: | komprimiertes Archiv auspacken: | ||
- | tar xzf directory.tgz | + | tar -xf share.tar.gz |
- | + | ||
- | ====== 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 | + | ===== Datensicherung über ssh ===== |
- | ((https://bugzilla.redhat.com/show_bug.cgi?id=771927)) | + | ==== Pull-Backup ==== |
+ | user@server.lxht.de:/usr/share/ -> ./share.tar.gz | ||
+ | ssh user@server.lxht.de tar -czC /usr share > share.tar.gz | ||
+ | ++++ Alternativ mit zstd| | ||
+ | ssh user@server.lxht.de tar -cC /usr --zst share > share.tar.zst | ||
+ | ++++ | ||
+ | === Restore dazu === | ||
+ | ./share.tar.gz -> user@server.lxht.de:/home/user/share | ||
+ | ssh user@server.lxht.de tar -xz < share.tar.gz | ||
+ | ++++ Alternativ mit zstd| | ||
+ | ssh user@server.lxht.de tar -x --zst < share.tar.zst | ||
+ | ++++ | ||
+ | ==== Push-Backup ==== | ||
+ | /usr/share/ -> user@server.lxht.de:/home/user/share.tar.gz | ||
+ | tar -czC /usr share | ssh user@server.lxht.de 'cat > share.tar.gz' | ||
+ | ++++ Alternativ mit zstd| | ||
+ | tar -cC /usr share --zst | ssh user@server.lxht.de 'cat > share.tar.zst' | ||
+ | ++++ | ||
+ | === Restore dazu === | ||
+ | user@server.lxht.de:/home/user/share.tar.gz -> ./share | ||
+ | ssh user@server.lxht.de cat share.tar.gz | tar -xz | ||
+ | ++++ Alternativ mit zstd| | ||
+ | ssh user@server.lxht.de cat share.tar.zst | tar -x --zst | ||
+ | ++++ | ||
+ | ===== Komplettsicherung eines Linux-Systems ===== | ||
+ | Systemverzeichnisse ermitteln: | ||
+ | df -hT -x tmpfs -x deftmpfs | ||
+ | Alle Systemverzeichnise auf Server sichern: | ||
+ | sudo tar c --xattrs --acls --xattrs-include='*' --numeric-owner --one-file-system / /boot /boot/efi | zstd | ssh nutzer45@notebook45 'cat > /mnt/backup.tar.zst' | ||
+ | | ||
+ | ===== Grenzen von tar ===== | ||
+ | * https://www.cyphar.com/blog/post/20190121-ociv2-images-i-tar |