tar soll meine symbolischen Links erhalten
tar soll meine symbolischen Links erhalten
Hallo,
ich habe mir ein Bash-Script geschrieben, dass verschiedene Verzeichnisse in ein Backupverzeichnis zippt. Nun auch das etc-Verzeichnis. Leider bleiben die symbolischen Links darin nicht erhalten wie ich nun feststellen musste, als ich das backup wieder einspielen wollte.
Die Man-Pages geben nicht viel her und Google auch nicht, daher muss ich jetzt mal fragen.
Wie bringe ich TAR dazu auch meine symbolischen Links zu erhalten?
Ciao, micbur
ich habe mir ein Bash-Script geschrieben, dass verschiedene Verzeichnisse in ein Backupverzeichnis zippt. Nun auch das etc-Verzeichnis. Leider bleiben die symbolischen Links darin nicht erhalten wie ich nun feststellen musste, als ich das backup wieder einspielen wollte.
Die Man-Pages geben nicht viel her und Google auch nicht, daher muss ich jetzt mal fragen.
Wie bringe ich TAR dazu auch meine symbolischen Links zu erhalten?
Ciao, micbur
-
- Posts: 430
- Joined: 03. Mar 2006 23:16
Hallo,
meine Befehlszeile sieht so aus:
tar -pcvz --file=$TARGET_FILENAME --remove-files $TMP_DIR
--- edit
OK, ich glaube, ich kann mein Problem besser beschreiben.
Wenn ich ein Backup anlege und in meinem Verzeichnis ist ein Symlink, dann wird im Backup der Symlink zur Datei/Verzeichnis umgewandelt. Tar folgt dem Symlink und kopiert den Inhalt dann an die Stelle. Das ist unpraktisch. Wenn ich ein Symlink auf ein Verzeichnis habe, dann wird das gesamte Verzeichnis kopiert.
Das soll also nicht geschehen, der Symlink soll erhalten bleiben.
Würde es diese Zeile tun?
tar -hpcvz --file=$TARGET_FILENAME --remove-files $TMP_DIR
---
Ciao, micbur
meine Befehlszeile sieht so aus:
tar -pcvz --file=$TARGET_FILENAME --remove-files $TMP_DIR
--- edit
OK, ich glaube, ich kann mein Problem besser beschreiben.
Wenn ich ein Backup anlege und in meinem Verzeichnis ist ein Symlink, dann wird im Backup der Symlink zur Datei/Verzeichnis umgewandelt. Tar folgt dem Symlink und kopiert den Inhalt dann an die Stelle. Das ist unpraktisch. Wenn ich ein Symlink auf ein Verzeichnis habe, dann wird das gesamte Verzeichnis kopiert.
Das soll also nicht geschehen, der Symlink soll erhalten bleiben.
Würde es diese Zeile tun?
tar -hpcvz --file=$TARGET_FILENAME --remove-files $TMP_DIR
---
Ciao, micbur
-
- Posts: 430
- Joined: 03. Mar 2006 23:16
Hallo nochmal,
Der Schaltersoll eigentlich für genau das von Dir bemängelte Verhalten dasein: Statt Links zu behandeln sollen die referenzierten Dateien/Verzeichnisse bearbeitet werden.
Versuch es mal damit, vielleicht ist Deine tar-Version (welche?, welches OS?) genau anders kompiliert.
Oder hast Du vielleicht einen 'alias' anstatt des tar gesetzt (in der Art: alias tar='tar h')?
Der Schalter
Code: Select all
'-h'/'--dereference'
Versuch es mal damit, vielleicht ist Deine tar-Version (welche?, welches OS?) genau anders kompiliert.
Oder hast Du vielleicht einen 'alias' anstatt des tar gesetzt (in der Art: alias tar='tar h')?
Hallo,
kein Alias für tar vorhanden.
Und was es für ein Linux ist, kann ich dir nicht sagen. War vielleicht mal ein RedHat, aber das ist eine Vermutung. Uptime 385 days, und das nur, weil es vor einem Jahr einen Datenbankfehler gab.
Ciao, micbur
kein Alias für tar vorhanden.
Code: Select all
[cofdb01]# tar --version
tar (GNU tar) 1.13.25
Ciao, micbur
-
- Posts: 430
- Joined: 03. Mar 2006 23:16
jsdop:
@micbur
ich habe hier für sarge-tar-1.14 eine Manpage vom 22.September 1993.
Wenn Deine dieselbe Version ist und dieses spezifische Verhalten nicht beschreibt, vielleicht hilft ein
EDIT: fedora-4: tar-1.15.1
Widerspruch: cpio ist "anders", im Grunde erfüllen beide ihren Zweck. Hier geht es um ein spezielles Problem in tar, welches scheinbar distributionsspezifisch oder versionsabhängig ist (Behandlung der Links).benutze dafür am besten cpio.
das ist für backups besser geeignet und die links kann man damit auch erhalten.
@micbur
ich habe hier für sarge-tar-1.14 eine Manpage vom 22.September 1993.
Wenn Deine dieselbe Version ist und dieses spezifische Verhalten nicht beschreibt, vielleicht hilft ein
Code: Select all
tar --help
Hallo,
wie gesagt, welche Distri, das weiß ich nicht.
Ganz unten an der Manpage steht ein Datum: 30 October 2000 TAR(1). Ich hoffe, es ist nicht das Datum der (app) Manpage.
$> tar --version liefert:
tar (GNU tar) 1.13.25
Copyright © 2001 Free Software Foundation, Inc.
Ich habe auch nochmal nachgeschaut, es ist wirklich das einzigste tar auf diesem System. Also aktuell ist sowieso v-1.15.91. Würde es damit besser gehen?
Ciao, micbur
PS: bald bin ich soweit, dass ich die Manpage hier einfüge. Wahrscheinlich lese ich wieder nicht richtig
wie gesagt, welche Distri, das weiß ich nicht.
Ganz unten an der Manpage steht ein Datum: 30 October 2000 TAR(1). Ich hoffe, es ist nicht das Datum der (app) Manpage.
$> tar --version liefert:
tar (GNU tar) 1.13.25
Copyright © 2001 Free Software Foundation, Inc.
Ich habe auch nochmal nachgeschaut, es ist wirklich das einzigste tar auf diesem System. Also aktuell ist sowieso v-1.15.91. Würde es damit besser gehen?
Ciao, micbur
PS: bald bin ich soweit, dass ich die Manpage hier einfüge. Wahrscheinlich lese ich wieder nicht richtig
-
- Posts: 430
- Joined: 03. Mar 2006 23:16
Hallo nochmal,
(nicht dass Dein tar-1.13.25 eine rootkit-Version ist)
google: "tar (GNU tar) 1.13.25" ergab einige Seiten über buggy-Version.
http://fedora.redhat.com/Download/mirrors.html
(einfach ausprobieren, oft klappt so etwas; aber nicht installieren, sondern nur das binary aus dem Paket ausprobieren)
(auf meinem sarge konnte ich tar-1.15.1 nicht ausführen, was aber nicht heisst)
EDIT:
Um herauszubekommen, welche OS-Version auf deinem Rechner läuft:
welche tar-Version soll laut rpm auf Deinem System sein?tar (GNU tar) 1.13.25
Code: Select all
rpm -qa | grep tar
google: "tar (GNU tar) 1.13.25" ergab einige Seiten über buggy-Version.
http://fedora.redhat.com/Download/mirrors.html
(einfach ausprobieren, oft klappt so etwas; aber nicht installieren, sondern nur das binary aus dem Paket ausprobieren)
(auf meinem sarge konnte ich tar-1.15.1 nicht ausführen, was aber nicht heisst)
EDIT:
Um herauszubekommen, welche OS-Version auf deinem Rechner läuft:
Code: Select all
uname -a (erste Hinweise durch die Kernelversion)
/etc/issue und /etc/issue.net (meist)
/etc/version oder /etc/redhat-version oder ähnlich (kenne kein RedHat)
Pakete aus dem Update-Cache (falls noch vorhanden) durchsehen
rpm -qa (einige Versionsnummern vergleichen; besonders Basis-Pakete: glibc, X usw.)
Beispiel:
FC4: glibc-2.3.5-10 upd: 2.3.6-3
FC5; glibc-2.4-4 upd: 2.4-8
lösung gefunden
Hallo,
also das tar, was ich hatte und das neue tar funktionieren super. Der Fehler lag woanders.
Ich hatte ein Backup-Script geschrieben, dass auf entfernten Rechnern ein Verzeichnis sichert.
sh backup <host> <verz>
Nunja, ich benutzte scp, um die Dateien temporär lokal zwischenzuspeichern und scp war es, dass die Links dereferenzierte. Nun nutze ich rsync und es geht super.
Merke, scp verfolgt Links und dereferenziert sie, rsync nicht.
Ciao, micbur
also das tar, was ich hatte und das neue tar funktionieren super. Der Fehler lag woanders.
Ich hatte ein Backup-Script geschrieben, dass auf entfernten Rechnern ein Verzeichnis sichert.
sh backup <host> <verz>
Nunja, ich benutzte scp, um die Dateien temporär lokal zwischenzuspeichern und scp war es, dass die Links dereferenzierte. Nun nutze ich rsync und es geht super.
Merke, scp verfolgt Links und dereferenziert sie, rsync nicht.
Ciao, micbur