Tar archiv

Hallo zusammen,

ich probiere gerade ein backup script zu erstellen,
in diesem script sollen alle dateien enthalten sein die nicht mit

\*.if
\*.ifalt
\*.ifaltdel
\*.bz2old
\*.bz2

enden.

dazu nutze ich aktuell folgenden befehl:

find /var/www/ \( -name '\*' -and ! -name '\*.if' -and ! -name '\*.ifalt' -and ! -name '\*.ifaltdel' -and ! -name '\*.bz2old' -and ! -name '\*bz2' \) -type f -print0 | xargs -0 tar -cf /var/backup/apache\_backup\_$datei.tar


    
    
    jedoch werde jetzt nicht alle dateien gesichert sondern nur ungefähr die letzten 1600 dateien.
    
    insgesamt müssten es jedoch über 75000 dateien sein. wenn ich das find in eine datei umleite enthält diese datei auch alle zu sichernden dateien.
    
    ist der tar befehl auf eine bestimmte anzahl von dateien beschränkt? oder habe ich sonstirgendwo einen fehler in dem script ?
    
    Gruß
    Phillip

Hallo,

find /var/www/ ( -name ‚*‘ -and ! -name ‚*.if‘ -and ! -name
‚*.ifalt‘ -and ! -name ‚*.ifaltdel‘ -and ! -name ‚*.bz2old‘
-and ! -name ‚*bz2‘ ) -type f -print0 | xargs -0 tar -cf
/var/backup/apache_backup_$datei.tar

jedoch werde jetzt nicht alle dateien gesichert sondern nur
ungefähr die letzten 1600 dateien.

insgesamt müssten es jedoch über 75000 dateien sein.

Das Problem ist die Länge der Kommandozeile, die keine 75000 Dateinamen fassen kann.

Ich würde einfach das ganze Verzeichnis packen und tar die --exclude= Option mitgeben.

Grüße,
Moritz

Hi,

> > find /var/www/ \( -name '\*' -and ! -name '\*.if' -and ! -name  
> > '\*.ifalt' -and ! -name '\*.ifaltdel' -and ! -name '\*.bz2old'  
> > -and ! -name '\*bz2' \) -type f -print0 | xargs -0 tar -cf  
> > /var/backup/apache\_backup\_$datei.tar

jedoch werde jetzt nicht alle dateien gesichert sondern nur
ungefähr die letzten 1600 dateien.

Jo. Haette ich so erwartet.

Das Problem ist die Länge der Kommandozeile, die keine 75000
Dateinamen fassen kann.

Mitnichten: xargs teilt ja die per stdin reingegebenen Dateien genau so auseinander, dass es auf die Kommandozeile des dahinter angegebenen Programms passt. Und fuer jeden Teil ruft es das Programm auf.

tar wird also mehrmals aufgerufen. Sacken lassen… und nichts draus machen, xargs hat auch gestandene Unix-Admins schon verzweifeln lassen. Man koennte dem tar die Option -r mitgeben.

Ich würde einfach das ganze Verzeichnis packen und tar die
–exclude= Option mitgeben.

Oder so.

Gruss vom Frank.

1 Like

nutze jetzt die exclude funktion.
muss wohl beim man lesen tomaten auf den augen gehabt haben :smile:

danke für die hilfe :smile:

Gruß
Phillip