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-ID: 52185570101

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

Ausgedruckt am: 21.11.2024 um 23:11 Uhr

OIOOIOOIOIIOOOIIOIIOIOOO
OIOOIOOIOIIOOOIIOIIOIOOO 14.11.2023 um 11:29:49 Uhr
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
lord-icon
lord-icon 14.11.2023 um 11:49:40 Uhr
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"
TK1987
Lösung TK1987 14.11.2023 aktualisiert um 12:06:19 Uhr
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
ITwissen
ITwissen 14.11.2023 um 11:53:02 Uhr
Goto Top
Welches OS, welche Shell, welches Tar (Gnu?) und Version?
LordGurke
LordGurke 14.11.2023 um 12:07:44 Uhr
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.
TK1987
TK1987 14.11.2023 um 12:14:48 Uhr
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.