[Eisfair_dev] tar: Wichtige Änderung mit dem nächsten Base-Update

Marcus Roeckrath marcus.roeckrath at gmx.de
Do Jun 29 19:39:09 CEST 2017


Hallo,

mit dem nächsten Base-Update wird auch tar von der Version 1.28 auf 1.29
upgedatet.

Auch wenn die minimale Änderung der Versionsnummer dies nicht vermuten
liesse, wurde von den tar-Maintainer eine IMHO gravierende Änderung
eingeführt.

Einige Optionen sind nun position-sensitive (positionsabhängig), worauf ich
prompt mit meinen selbstgeschriebenen Backup-Skripten auf die Nase gefallen
bin, so dass ein Backupskript meine Backupplatte randvoll geschrieben hat.

Welche Optionen position-sensitive sind, kann hier nachgelesen werden:

https://www.gnu.org/software/tar/manual/html_node/Position_002dSensitive-Options.html

Hier eine kurze Aufzählung:

--directory=dir
-C dir
--null
--no-null
--unquote
--no-unquote
--verbatim-files-from
--no-verbatim-files-from
--recursion
--no-recursion
--anchored
--no-anchored
--ignore-case
--no-ignore-case
--wildcards
--no-wildcards
--wildcards-match-slash
--no-wildcards-match-slash
--exclude
--exclude-from
-X
--exclude-caches
--exclude-caches-under
--exclude-caches-all
--exclude-tag
--exclude-ignore
--exclude-ignore-recursive
--exclude-tag-under
--exclude-tag-all
--exclude-vcs
--exclude-vcs-ignores
--exclude-backups

Nun einige Erklärungen zum alten und neuen Verhalten:

Bislang war folgender Aufruf möglich:

tar -cvvf <archiv> <quelle> --exclude='/mnt' <weitere Optionen>

womit aus dem Archiv das Verzeichnis /mnt ausgeschlossen wurde.

Mit der neuen Version wird dieser exclude so nicht mehr beachtet, denn er
steht hinter der Quelle.

Zukünftig müssen eine ganze Reihe von Optionen vor dem Quellverzeichnis
stehen für die sie gelten sollen, so dass obiger Aufruf nun so zu
formulieren ist:

tar -cvvf <archiv> --exclude='/mnt' <quelle> <weitere Optionen>

oder

tar -cvvf <archiv> --exclude='/mnt' <weitere Optionen> <quelle>

Positionsabhängige Optionen müssen also vor der Quelle stehen, wenn sie für
diese gelten sollen.

Was ist zu tun?

Wer tar in eigenen Skripten benutzt, sollte umgehend kontrollieren, ob die
Syntax richtig ist.

Steht die zu sichernde Quelle jetzt schon am Ende der Optionenkette, ist
alles ok, wenn nicht ist sie ans Ende aber mindestens hinter die
positionsabhängigen Optionen zu verschieben.

Das Paket backup-zip habe ich schon kontrolliert und benötigt keine
Anpassung.

Bei Unklarheiten einfach nachfragen.

-- 
Gruss Marcus


Mehr Informationen über die Mailingliste Eisfair_dev