[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Pakete_installieren: Pakete installieren] [:Terminal: Ein Terminal öffnen] [:Root-Rechte:Mit Root-Rechten arbeiten] }}} [[Inhaltsverzeichnis()]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] Das Programm [#Links tar] steht für "'''t'''ape '''ar'''chiver". Es wurde ursprünglich geschrieben, um Daten auf [wikipedia:Bandlaufwerk:Bandlaufwerken] zu sichern. Auch heute noch ist es das beliebteste Werkzeug zum Archivieren von Daten auf Linux-Systemen. Der Hauptvorteil eines von '''tar''' erstellten Archivs gegenüber dem in der Windowswelt weitverbreiteten Format ZIP ist, dass die Benutzerrechte einer Datei mit gesichert und beim Entpacken wieder hergestellt werden (allerdings nur, wenn Quelle und Ziel die Unix-Dateirechte unterstützen). Dieser Artikel beschreibt das bei Ubuntu eingesetzte [#Links GNU tar]. Versionen des Programms für andere Betriebssysteme können sich davon unterscheiden bzgl. des Aufrufs und des Verhaltens. Ob man GNU tar benutzt, kann man mit diesem Befehl testen: [[Vorlage( Befehl, "tar --version" ) ]] Ein vom Programm '''tar''' erstelltes Archiv wird oftmals auch als Tarball bezeichnet. Dafür ist ein auf '''.tar''' endender Dateiname üblich, aber nicht erforderlich. In Verbindung mit [:gzip:] oder [:bzip2:] trifft man oft auf Dateien mit der Endung ''' *.tar.gz''', '''.tgz''' oder '''tar.bz2'''. Solche Archive wurden mittels zusätzlicher Programme nachträglich [#Komprimieren komprimiert]. = Funktion = Das Programm schreibt alle Dateien sequenziell (= hintereinander) in ein Archiv. Falls einzelne Dateien oder Verzeichnisse mangels Berechtigungen nicht gesichert werden können, informiert tar darüber und setzt den Vorgang fort. Dabei werden diese Dateien natürlich ausgelassen. Neue Dateien werden immer an das Ende gehängt. Somit ist es möglich (aber selten), dass in einem Archiv mehrere Dateien mit gleichem Namen, aber in anderen Versionen, vorhanden sein können. Dies kann allerdings dazu führen, dass eine Datei beim Extrahieren mehrfach mit einer jüngeren Version überschrieben wird. Abhilfe kann hier die Option `-k` bringen (siehe unten). Was man mit '''tar''' zu einem Archiv vereinigt hat, kann man auch mit '''tar''' derselben Version wieder in seine Bestandteile trennen. Wenn man gezwungen ist, für das Ein- und Auspacken unterschiedliche Versionen von tar verwenden zu müssen, sind für die Portabilität zusätzliche Feinheiten zu beachten, siehe [#RTFM Dokumentation]. = Installation = Das Programm ist bei Ubuntu im Regelfall bereits in der Standard-Installation enthalten. Falls es fehlen sollte, kann es aus den offiziellen Paketquellen durch die folgenden Pakete installiert[1] werden: [[Anker( Hilfsprogramme-zu-tar ) ]] {{{#!vorlage Paketinstallation tar, "GNU-Version des tar-Archivierungsprogramms aus main" }}} Dieses enthält neben dem Programm auch die Hilfsprogramme '''tarcat''' und '''rmt''' sowie Manpages. {{{#!vorlage Paketinstallation tar-doc, optional, "Dokumentation für das tar-Paket aus main" }}} Dieses Paket enthält die offizielle Anleitung von tar, formatiert zur Anzeige durch [:info:]. Ohne dieses Paket zeigt info ebenfalls die Manpage an. = Bedienung = == Grafische Oberfläche == Es gibt für das Kommandozeilenprogramm tar grafische Bedienoberflächen, beispielsweise * [:Archivmanager:] und * in [:Dateimanager:] integrierte Frontends. Diese sind insbesondere beim Entpacken von Tarballs an bestimmte Stellen im Dateisystem praktisch. Dieser Artikel geht aber nicht weiter darauf ein und beschränkt sich auch die Benutzung des Programms auf der Kommandozeile. [[Anker( Aufruf ) ]] == Syntax == Der allgemeine Aufruf im Terminal[2] lautet: {{{#!vorlage Befehl tar OPTIONen DATEIen }}} [[Anker( Beispielbefehl ) ]] Beispiel für einen (später [#Anlegen beschriebenen]) Befehl: [[Vorlage(Befehl, "tar -c -v -f Archiv.tar Datei1 'Datei 2' 'Datei 3'" ) ]] * OPTIONen ist eine nicht leere Liste von Angaben, __was__ das Programm tun soll. GNU tar kennt eine beeindruckende Vielzahl von solchen Optionen, der Befehl [[Vorlage(Befehl, "tar --usage" ) ]] zeigt sie alle und im Abschnitt [#Optionen Optionen] werden einige häufig verwendete beschrieben. * DATEIen ist eine Liste von Dateinamen. Diese Liste beschreibt, __welche__ Dateien bearbeitet, also z.B. archiviert oder wieder hergestellt werden sollen. Der mit den OPTIONen ausgewählte operative Modus bestimmt, ob diese Liste leer sein darf oder sogar muss. * Das erste Argument für GNu tar muss eine Option sein, sonst gibt es eine Fehlermeldung oder ein fehlerhaftes Ergebnis. Nach dem ersten Argument kann man zwar OPTIONen und DATEIen mischen, aber das sollte man im Interesse einer guten Verständlichkeit vermeiden. = Optionen = Die Optionen kann man unterteilen in die Grundeinstellungen (operativer Modus) nach folgender [#Tabelle-1 Tabelle 1] und die Feineinstellungen nach [#Tabelle-2 Tabelle 2] und [#Tabelle-3 Tabelle 3]. Das Programm kennt für Optionen drei unterschiedliche Schreibweisen: 1. Beim GNU-Stil wird jede Option durch ein beschreibendes Wort bezeichnet, das von 2 Bindestrichen eingeleitet wird. Der [#Beispielbefehl Beispielbefehl] lautet dann: [[Vorlage(Befehl, "tar --create --verbose --file=Archiv.tar Datei1 'Datei 2' 'Datei 3'" ) ]] Diesen Stil sollte man z.B. in Skripten anwenden, da das zur Dokumentation beiträgt. 1. Beim UNIX-Stil wird jede Option über einen einzelnen Kennbuchstaben mit einem einleitenden Bindestrich identifiziert. Der [#Beispielbefehl Beispielbefehl] lautet dann wie oben angegeben.[[BR]]Man kann aber optional auch die Kennbuchstaben direkt aneinander schreiben und spart dann alle Bindestriche bis auf den ersten: [[Vorlage(Befehl, "tar -cvf Archiv.tar Datei1 'Datei 2' 'Datei 3'" ) ]] 1. Aus der Ära vor UNIX stammt der traditionelle Stil. Hierbei muss man die Kennbuchstaben aneinander schreiben und es gibt keinen einleitenden Bindestrich: [[Vorlage(Befehl, "tar cvf Archiv.tar Datei1 'Datei 2' 'Datei 3'" ) ]] Diese alte Methode verschlechtert die Lesbarkeit und sollte deshalb vermieden werden. Diese Schreibweise existiert bei GNU tar nur zur Kompatibilität mit UNIX tar. Die Reihenfolge der Optionen ist bei GNU tar bis auf wenige Ausnahmen beliebig; das gilt aber für gleichnamige Programme bei anderen Betriebssystemen als GNU/Linux möglicherweise nicht. Zu den Ausnahmen gehören u.a. die Option `-C` und die Optionen in der Gruppe von `--exclude`; Details siehe [#RTFM Dokumentation], insbesondere Kapitel 3.4.4 der offiziellen Anleitung. Obwohl bei GNU tar nicht erforderlich, sollte man auch bei der Benutzung dieses Programms der Konvention folgen, die Option für die Grundeinstellung zuerst zu nennen, da dies zur Klarheit und leichteren Verständlichkeit beiträgt. [[Anker( Tabelle-1 ) ]] Es gibt 9 operative Modus, die sich gegenseitig ausschließen: {{{#!vorlage Tabelle Tabelle 1: Grundeinstellungen zur Auswahl des operativen Modus +++ Option[[BR]]UNIX Option[[BR]]GNU Beschreibung +++ `-c` `--create` Ein neues Archiv erzeugen, und angegebene Dateien darin ablegen. Wenn man diesen Modus auf ein schon existierendes Archiv anwendet, wird es gelöscht und neu angelegt. +++ `--delete` Angegebene Dateien aus dem Archiv entfernen. Funktioniert nur mit Archiven in Dateiform, nicht mit Magnetbändern. +++ `-d` `--diff`[[BR]]`--compare` Dateien im Archiv und im Dateisystem miteinander vergleichen. +++ `-r` `--append` Dateien an ein bestehendes Archiv anhängen. [#Anm2 Anmerkung 2] +++ `-t` `--list` Inhalt eines Archivs anzeigen. +++ `--test-label` Testet das Volume-Label des Archivs. Ohne Angabe von Dateien wird das Label ausgegeben, anderenfalls wird jede angegebene Datei auf Anwesenheit im Archiv getestet und wenn sie fehlt, endet das Programm mit Fehlerstatus 1. +++ `-u` `--update` Nur Dateien anhängen, die jünger sind als ihre Archiv-Version. +++ `-x` `--extract`[[BR]]`--get` Dateien aus einem Archiv extrahieren. +++ `-A` `--catenate`[[BR]]`--concatenate` Inhalt eines bestehenden Archivs an ein anderes Archiv anhängen. }}} [[Anker( Tabelle-2 ) ]] Es können beliebig viele oder auch gar keine Feineinstellungen angegeben werden: {{{#!vorlage Tabelle Tabelle 2: Oft verwendete Feineinstellungen +++ Option[[BR]]UNIX Option[[BR]]GNU Beschreibung +++ `-?` `--help` Zeigt eine vollständige Übersicht über alle Optionen. +++ `--version` Gibt die installierte Version von tar aus. +++ `-f ARCHIV` `--file=ARCHIV` Archiv in angegebene Datei ARCHIV schreiben, bzw. Daten aus angegebener Datei ARCHIV lesen. Üblicherweise wird diese Option zuletzt angegeben, weil ihr ja ein Dateiname folgen muss. ARCHIV kann auch eine Gerätedatei, wie z.B. '''/dev/tape0''' sein. Tar kommuniziert dann über diese Gerätedatei direkt mit dem Gerät; dies entspricht der ursprünglichen Verwendungsweise des Programms. [#Anm2 Anmerkung 1] +++ `-g DATEI` `--listed-incremental=DATEI` für inkrementelle Backups. Schreibt zusätzlich eine Datei namens DATEI, in der eine Liste der bisher gesicherten Dateien ist und anhand derer festgelegt wird, welche Dateien im inkrementellen Backup gespeichert werden. +++ `-k` `--keep-old-files` Überschreiben existierender Dateien beim Extrahieren aus einem Archiv verhindern. +++ `-p` `--preserve-permissions`[[BR]]`--same-permissions` Auch Zugriffsrechte extrahieren. +++ `-v` --verbose Ausführliche Ausgabe aktivieren. +++ `-w` `--interactive`[[BR]]`--confirmation` Jede Aktion bestätigen. +++ `-W` `--verify` Archiv nach dem Schreiben prüfen. [#Anm2 Anmerkung 2] +++ `-C VERZEICHNIS` `--directory=VERZEICHNIS` Wechselt in das angegebene Verzeichnis. Das Archiv wird dann dort entpackt. +++ `-M` `--multi-volume` Mehrteiliges Archiv anlegen/anzeigen/extrahieren. +++ `-L ZAHL` `--tape-length=ZAHL` Medium wechseln, nachdem `ZAHL` kiB geschrieben wurden. }}} [[Anker( Anm2) ]] Anmerkungen: 1. Die Option `-f` wird fast immer angewendet, dennoch bleibt sie optional. Wenn man sie nicht angibt, verwendet tar den Wert der [:Umgebungsvariablen:] `TAPE`, sofern diese existiert und nicht leer ist, oder sonst eine Voreinstellung; diese Voreinstellung ist bei Ubuntu „`-`“, was je nach operativem Modus die Verwendung von stdin bzw. stdout bedeutet. 1. {{{#!vorlage Hinweis Manche Optionen wie `-r` oder `-W` funktionieren nur mit einem unkomprimiertem Archiv. }}} 1. OPTIONen kann man auch über die [:Umgebungsvariable:] TAR_OPTIONS übergeben, die vor allen Angaben auf der Kommandozeile ausgewertet wird. 1. Für weitere Optionen und eine detaillierte Beschreibung siehe [#RTFM Dokumentation]. = Beispiele = == Anlegen == * Ein Archiv mit dem Namen '''archiv.tar''' mit den Dateien '''datei_1.txt''' und allen Dateien vom Typ '''*.pdf''' anlegen: [[Vorlage( Befehl, "tar -cf archiv.tar datei_1.txt *.pdf" ) ]] Man kann, wie im Beispiel gezeigt, zur Selektion der Dateien [:Shell/Glob:Globs] verwenden, diese werden aber nicht von tar, sondern von der aufrufenden Shell aufgelöst und die daraus resultierenden Dateinamen werden an tar übergeben. [[BR]]Der oben bereits vorgestellte [#Beispielbefehl Beispielbefehl] erstellt zusätzlich noch eine Fortschrittsanzeige durch Ausgabe der gerade bearbeiteten Datei; die dafür zuständige Option `-v` ist beim interaktiven Gebrauch immer zu empfehlen. * Ein Archiv mit dem Ordner '''daten''' inklusive aller Unterordner und Dateien anlegen: [[Vorlage( Befehl, "tar -cf archiv.tar daten/" ) ]] * Ein Archiv anlegen, zwei Dateien hinzufügen und nachträglich [#Komprimieren komprimieren] mit [:gzip:]: [[Vorlage( Befehl, "tar -czf archiv.tar.gz datei_1.txt datei_2.txt" ) ]] == Erweitern == * Einem nicht komprimierten Archiv eine Datei hinzufügen: [[Vorlage( Befehl, "tar -rf archiv.tar datei_1.txt" ) ]] == Anzeigen == * Den Inhalt eines (ggf. auch komprimierten) Archivs ausführlich anzeigen: [[Vorlage( Befehl, "tar -tvf archiv" ) ]] == Aktualisieren == * Fügt nur Dateien hinzu, wenn sie neueren Datums sind als ihr Gegenstück im Archiv: [[Vorlage( Befehl, "tar -uf archiv.tar daten" ) ]] Leider werden bei einer Aktualisierung keine Unterverzeichnisse berücksichtigt! == Vergleichen == * Den Inhalt eines Archivs mit dem Dateisystem vergleichen: [[Vorlage( Befehl, "tar -dvf archiv.tar" ) ]] Der Befehl sollte in dem Verzeichnis ausgeführt werden, in dem die Dateien, die im Archiv liegen, gespeichert sind. == Extrahieren == {{{#!vorlage Warnung Das Programm tar überschreibt beim Extrahieren Dateien und Verzeichnisse ohne Nachfrage, daher * Inhalt vor dem Extrahieren überprüfen (siehe [#Anzeigen Beispiel Anzeigen]) oder * vor dem Extrahieren ein neues Verzeichnis anlegen und dorthin wechseln. }}} * Alle Dateien aus einem Archiv in den aktuellen Ordner extrahieren: [[Vorlage( Befehl, "tar -xf archiv.tar" ) ]] * Alle Dateien in ein bestimmtes, bereits existentes Verzeichnis extrahieren: [[Vorlage( Befehl, "tar -xf archiv.tar.gz -C /PFAD/ZUM/ORDNER" ) ]] * Eine bestimmte Datei aus einem Archiv extrahieren: [[Vorlage( Befehl, "tar -xf archiv.tar.gz PFAD/DATEINAME" ) ]] Dabei muss `PFAD/DATEINAME` genau so in der Archiv-Datei existieren. Ein angegebenes Unterverzeichnis `PFAD` wird im aktuellen Verzeichnis (bei relativem Pfad) automatisch erstellt. * Inhalt direkt in den Zielordner entpacken [[Vorlage( Befehl, "tar -xf example.tar.gz -C /PFAD/ZUM/ORDNER --strip-components=1" ) ]] Die Option `-C` spezifiziert das Verzeichnis wohin ausgepackt werden soll. Durch die Option `--strip-components=1` wird der Inhalt direkt in das gewünschte Verzeichnis ausgepackt ohne dabei ein Hauptverzeichnis anzulegen. [[Anker( "tar mit Komprimierung kombinieren" ) ]] [[Anker( Komprimierung ) ]] == Komprimieren == Oft besteht der Wunsch, ein Archiv in einer Datei durch Komprimierung zu verkleinern. Dies ist über zwei Ansätze möglich: * Das Programm tar beherrscht intern einige Komprimierungsverfahren, die man über zusätzliche Optionen nach [#Tabelle-3 Tabelle 3] auswählen kann. Besonders praktisch ist die Option `-a`, bei der die Dateiendung den Komprimierungsalgorithmus bestimmt: [[Vorlage( Befehl, "tar -caf Archiv.tgz *.pdf" ) ]] archiviert alle Dateien mit Endung '''.pdf''' und komprimiert anschließend mit [:gzip:]. * Bei externer Komprimierung lässt man das Archiv auf die Standardausgabe schreiben und leitet das per Pipe selber an das Komprimierungsprogramm weiter: [[Vorlage( Befehl, "tar -c *.pdf | gzip >Archiv.tgz" ) ]] erbringt dasselbe Ergebnis wie vorstehender Befehl. Bei der internen Komprimierung beschäftigt tar immer nur einen CPU-Kern, dagegen kann bei explizitem Aufruf des Komprimierungsprogramms die CPU voll auslasten und gelangt ggf. schneller zum Ziel, siehe [:tar/Pack-Test:hier] für Details eines Versuchs. Bei der externen Komprimierung kann man natürlich statt gzip jedes andere Packprogramm verwenden und hat den zusätzlichen Vorteil, dass man selber die Komprimierung präziser steuern kann. [[Anker( Tabelle-3 ) ]] {{{#!vorlage Tabelle Tabelle 3: Feineinstellungen für Komprimierung +++ Option[[BR]]UNIX Option[[BR]]GNU Beschreibung Dateiendung +++ `-a` `--auto-compress` <-2>Archiv komprimieren, dafür das Verfahren gemäß Dateiendung verwenden. +++ `--no-auto-compress` <-2>Kompressionsprogramm nicht automatisch bestimmen. +++ `-j` `--bzip2` Archiv zusätzlich mit [:bzip2:] (de)komprimieren. .bz2 .tz2 .tbz2 .tbz +++ `-J` `--xz` Archiv zusätzlich mit [:Archivmanager#Archivformate:xz] (de)komprimieren. .xz +++ `-z` `--gzip`[[BR]]`--gunzip`[[BR]]`--ungzip` Archiv zusätzlich mit [:gzip:] (de)komprimieren. .gz .tgz .taz +++ `-Z` `--compress`[[BR]]`--uncompress` Archiv zusätzlich mit `compress` (de)komprimieren. .Z .taZ +++ `--lzip`[[BR]]`--lzma`[[BR]]`--lzop`[[BR]]`--zstd` Archiv durch lzip/lzma/lzop/zstd filtern. .lz[[BR]].lzma .tlz[[BR]].lzo[[BR]].zst .tzst }}} Bein Auspacken wird ein als Datei vorliegendes komprimiertes Archiv über eine interne Signatur oder die Dateinamensendung automatisch erkannt und man kann ohne zusätzliche Optionen arbeiten. Wenn aber das Archiv über eine Pipe erreicht wird, muss man solche Optionen angeben. [[Anker( "Archiv aufteilen und zusammenfügen" ) ]] = Mehrteilige Archive = Das Programm tar kann ein Archiv auf mehrere Datenträger aufteilen und auch einen Datenträgersatz wieder zu einem Archiv zusammensetzen. Es gibt hierfür zwei gängige Methoden. == Multi-Volume-Archive == Multi-Volume-Archive sind eine im Programm tar eingebaute Möglichkeit, sehr große Archive auf externen Medien zu sichern. Das funktioniert im Grundsatz mit allen Laufwerken für Wechseldatenträger wie z.B. Magnetbänder oder Disketten, die direkt Daten schreiben können, jedoch nicht mit optischen Laufwerken, die einen „Brennvorgang“ benötigen. Man benötigt zusätzlich die Option `-M` und arbeitet nicht mit regulären Dateien für das Archiv, sondern direkt mit der Gerätedatei (hier beispielhaft: '''/dev/tape0''') für das Laufwerk. Für diese Gerätedatei muss man das Schreibrecht haben, daher arbeitet man in der Regel mit Root-Rechten[3]. === Anlegen === {{{#!vorlage Warnung Es ist darauf zu achten, das richtige Gerät anzusprechen, da sonst Daten verloren gehen können! }}} * Multi-Volume-Archiv anlegen: [[Vorlage( Befehl, "sudo tar -cvMf /dev/tape0 daten/" ) ]] Wenn ein Medium vollständig beschrieben ist, fragt tar so lange nach neuen Medien, bis alle Daten geschrieben sind. Dies sieht zum Beispiel so aus: \\ {{{ Medium #2 für /dev/tape0 und Eingabetaste drücken: }}} * Wenn das Medium nicht in der Lage ist die Rückmeldung zu geben, wann es vollständig beschrieben ist, kann die Option `-L` mit Angabe der Speicherkapazität helfen: [[Vorlage( Befehl, "sudo tar -cvM -L 10000 -f /dev/tape0 daten/" ) ]] Es ist wichtig, die genaue Speicherkapazität des Mediums anzugeben, da sonst beim Extrahieren eventuell Teile von alten Archiven extrahiert werden. Nachteile bei dieser Methode: * Das Archiv kann nur mit tar wieder hergestellt werden. * Zusätzliche [#Komprimierung Komprimierung] ist nicht möglich. === Extrahieren === Normalerweise hat man als normaler Benutzer das Leserecht für Gerätedateien und benötigt deshalb für folgende Befehlen kein [:sudo:]; in Ausnahmefällen vielleicht doch. * Multi-Volume-Archiv vollständig extrahieren: [[Vorlage( Befehl, "tar -xvpMf /dev/tape0" ) ]] * Eine Datei aus einem Multi-Volume-Archiv extrahieren: [[Vorlage( Befehl, "tar -xvpMf /dev/tape0 PFAD/DATEINAME" ) ]] tar wird dann die folgenden Medien anfordern, bis die benötigte Datei gefunden ist. == Extern == Unter GNU/Linux kann man beliebige Dateien mit dem Programm [:split:] aufteilen. Die Zusammenarbeit mit tar sieht so aus: 1. Man erstellt das Archiv: [[Vorlage( Befehl, "tar -cf archiv.tar Anleitung.pdf" ) ]] 1. Die Datei mit dem Archiv in Teile aufspalten: [[Vorlage( Befehl, "split -b 3900M archiv.tar Anleitung.tar." ) ]] {{{ Anleitung.tar.001 Anleitung.tar.002 Anleitung.tar.003 Anleitung.tar.004 Anleitung.tar.005 }}} 1. Die Teildateien kann man z.B. problemlos einzeln auf Datenträger mit Dateisystemen des Typs FAT16/32 schreiben, die ja nur Dateien unter 4 GiB aufnehmen können. Beispiel für das Zusammenfügen: 1. Zusammengefügt werden die Teile mit [#Hilfsprogramme-zu-tar tarcat]: [[Vorlage( Befehl, "tarcat Anleitung.tar.00{1..5} > Anleitung.merged.tar" ) ]] Manchmal, wenn tar keine zusätzlichen Verwaltungsdaten an den Anfang der Teildateien geschrieben hat, gelingt auch eine funktionsfähige Zusammenfügung mit [:cat:]. 1. Aus dem zusammengefügtem Archiv kann man anschließend mit `tar -x …` ganz normal Dateien extrahieren. Für die grafische Oberfläche gibt es eine Integration in den Dateimanager [:Nautilus:]: [:Nautilus/Skripte/Splitten_und_Vereinigen:] = Backup mit tar = Das Programm tar eignet sich gut zur Datensicherung. Es gibt fertige Skripte zur Integration dieser Aufgaben in den Dateimanager [:Nautilus:]: * [:Skripte/Backupscript:Backupskript] für vollständige Sicherung ganzer Ordner * [:Skripte/inkrementelles Backup:] für schnelle ergänzende Teilsicherungen zwischen Vollsicherungen = Netzwerk = Das Programm tar kann problemlos über das Netzwerk Daten transferieren und z.B. ein Archiv auf einem anderen Rechner als Datei ablegen oder auf ein dortiges Gerät ausgeben. Dafür reicht normalerweise aus, mit der Option `-f` den anderen Rechner (hier beispielhaft: Server) anzugeben: {{{ --file=Server:/PFAD-ZUR-DATEI/Archiv.tar -f Server:/PFAD-ZUR-DATEI/Archiv.tar --file=Server:/dev/tape0 -f Server:/dev/tape0 }}} Natürlich muss der Rechnername „Server“ dafür auf dem lokalen Rechner zu einer IP-Adresse auflösbar sein. Man kann auch einen Benutzer auf dem Server in der üblichen Weise mit „`Benutzer@Server`“ angeben. Wenn der Dateiname für das Archiv einen Doppelpunkt enthält, wird diese Funktionalität von tar aktiviert. Das Programm tar kontaktiert dann den anderen Rechner per [#Links rsh] und startet damit das Programm [#Hilfsprogramme-zu-tar rmt (Remote Tape Server)], welches dann im Netzwerk als Gegenstation für den lokalen Client dient. Anstatt im vorstehend beschriebenen internen Modus die veraltete und unsichere Remote Shell (rsh) und den rmt zu benutzen, kann man mit Hilfe einer Pipe im externen Modus alles verwenden, was eine Ausführung eines Befehls auf dem anderen Rechner ermöglicht, u.a. das sichere und leicht verfügbare Protokoll [:SSH:]. Der Befehl [[Vorlage( Befehl, 'tar -c DATEIen | ssh Benutzer@Server "cat >/PFAD-ZUR-DATEI/Archiv.tar"' ) ]] erstellt ein Archiv mit Dateien des lokalen Rechners und legt es auf dem anderen Rechner ab. Bei dieser Arbeitsweise benötigt man eine hinreichend leistungsfähige und zuverlässige Netzwerkverbindung, aber keinen Speicherplatz auf dem lokalen Rechner. ## kB 2025 obsolet? : ## Mit tar können Daten auch per [:FTP:] gesichert werden. Um z.B. das lokale Verzeichnis '''/home/BENUTZER/''' als Datei '''user.tar''' zu sichern, am besten in einem Terminal in das lokale Verzeichnis '''/home''' wechseln. Dann eine FTP-Verbindung zu dem Server aufbauen, auf dem das Archiv gesichert werden soll und dort in das Zielverzeichnis wechseln. Folgender Befehl in der FTP-Shell stößt den Vorgang an: [[Vorlage( Befehl, 'ftp> put |"tar -cf - BENUTZER" user.tar' ) ]] [[Anker( RTFM ) ]] = Dokumentation = * Übersicht: [[Vorlage( Befehl, "tar --usage" ) ]] * Kurzbeschreibung: [[Vorlage( Befehl, "tar --help | less" ) ]] * Manpage mit dem Programm [:man:] auf dem eigenen Rechner: [[Vorlage( Befehl, "man tar" ) ]] * oder im Internet: [man:tar:`man tar`] {en} * Eine detaillierte Beschreibung erhält man, wenn das zusätzliche Dokumentationspaket installiert wurde, mit [:info:]: [[Vorlage( Befehl, "info tar" ) ]] Ohne Dokumentationspaket zeigt info nur die Manpage. * Ausführliche [https://www.gnu.org/software/tar/manual/index.html offizielle GNU tar Anleitung] {en} ## Kopiervorlage: [[Vorlage( Befehl, "" ) ]] = Links = * [:Archivmanager:] {Übersicht} zu Komprimierungs-Formaten und Archivierungs-Programmen * Wikipedia zu [wikipedia:tar_(Packprogramm):tar] * Homepage von [https://www.gnu.org/software/tar GNU tar] {en} bei GNU.org * Ubuntu-Pakete für [https://packages.ubuntu.com/search?suite=all§ion=all&arch=any&keywords=rsh-redone&searchon=names rsh] {en} #tag: Shell, Packer, Komprimierung, Archivmanager, Datensicherung