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 „Gefällt mir“
nutze jetzt die exclude funktion.
muss wohl beim man lesen tomaten auf den augen gehabt haben 
danke für die hilfe 
Gruß
Phillip