lord-icon
Goto Top

Tar packen mit exclude befehl

Moin,

ich hab jetzt um die 20-30 Konstellationen mit tar exclude versucht.
Entwer bekomme ich ein Syntax Fehler.... oder aber der Befehl wird nicht sauber umgesetzt

tar cfvz var_www.tar.gz --exclude=/var/www/htdocs/*/backup/  /var/www/
im laufe des Backups sehe ich dann solche Einträge
/var/www/htdocs/web13/backup/Büro/1_SAVE/Ablage/2018/Maerz/22/


Weiß einer Rat?
Wie macht Ihr das?

Content-Key: 52185570101

Url: https://administrator.de/contentid/52185570101

Printed on: April 27, 2024 at 08:04 o'clock

Member: OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO Nov 14, 2023 at 10:29:49 (UTC)
Goto Top
Guten Tag,

soviel ich weiß versteht Tar Regex nicht.

ich denke, dass du die exakten Ordner zunächst suchen musst und dann das Ergebnis an Tar übergeben.

Sollte ich unrecht haben, dürft Ihr mich alle Köpfen.

Viele Grüße

Ich
Member: lord-icon
lord-icon Nov 14, 2023 at 10:49:40 (UTC)
Goto Top
tar cfvz var_www.tar.gz --exclude=/var/www/htdocs/*/backup/*  /var/www/

dooooch. Solte er. In den Doks ist das so erwähnt.
Mitunter läuft aber ein erneuter Versuch, wo ich erstmal kein "Backup" ordner gesehen habe. Aber das Backup läuft noch. Dauert um die 1h:15min. Somit noch alles offen.

Ich habe jetzt hinter Backup nur nochmal ein * gesetzt.
Wenn das past, dann ist tar ganz schön "Kleinig"
Member: TK1987
Solution TK1987 Nov 14, 2023 updated at 11:06:19 (UTC)
Goto Top
Moin,

Zitat von @lord-icon:
tar cfvz var_www.tar.gz --exclude=/var/www/htdocs/*/backup/*  /var/www/
zum einen fehlt vor den Parametern das Minus, zum anderen muss die Archivdatei unmittelbar hinter dem Parameter -f folgen. Also umstellen:
tar -cvzf var_www.tar.gz --exclude=/var/www/htdocs/*/backup/*  /var/www/
Funktioniert bei mir im Test jedenfalls Problemlos.

Zitat von @OIOOIOOIOIIOOOIIOIIOIOOO:
soviel ich weiß versteht Tar Regex nicht.
Macht nichts, ist ja auch kein Regex, sondern simple Wildcards - und die versteht tar. Siehe https://www.gnu.org/software/tar/manual/html_node/exclude.html

Gruß Thomas
Member: ITwissen
ITwissen Nov 14, 2023 at 10:53:02 (UTC)
Goto Top
Welches OS, welche Shell, welches Tar (Gnu?) und Version?
Member: LordGurke
LordGurke Nov 14, 2023 at 11:07:44 (UTC)
Goto Top
Ohne jetzt in man tar nachgeschlagen zu haben, wie deren Exclude-Syntax ist:
Wenn du Sternchen als Sternchen übergeben willst, musst du den Wert auch in Anführungszeichen packen, sonst expandiert deine Shell ihn vorher.

Also
--exclude='/var/www/htdocs/*/backup/*'  

Als Randbemerkung zu dem Pfad:
Das sieht fast aus, als wenn du Backups in Document-Roots liegen hast, die eventuell per HTTP erreichbar sind.
Falls das so ist, solltest du den Ablageort der Backups überdenken, das ist eine der Stellen, die Bots regelmäßig abgrasen.
Member: TK1987
TK1987 Nov 14, 2023 at 11:14:48 (UTC)
Goto Top
Zitat von @lord-icon:
Ich habe jetzt hinter Backup nur nochmal ein * gesetzt.
Das ist auch entscheidend. Wenn du den kompletten Ordner Backup ausschließen willst, darf es nur so lauten:
--exclude=/var/www/htdocs/*/backup
Wichtig: Ohne abschließenden slash! Sobald du mit einem Slash abschließt, wird der Inhalt des Ordner überprüft - ohne Wildcard dahinter, trifft der Excludestring jedoch auf nichts zu.