Per Shell Dateien Zippen und löschen
bruzzler
- webserver
0 tami0 bruzzler0 tami
0 misterunknown
0 misterunknown0 Jens Holzkämper
Hallo,
ich hoffe jemand kann mir helfen.
Und zwar würde ich gerne in einem Ordner ein SH Script erstellen, dass in diesem Ordner *.log files sucht, die größer als X sind, diese files dann in ein Zip oder Tar packt, und danach dann diese *.log files löscht.
Was ich versucht habe ist:
#!/bin/sh
date=$(date +"%m%d%Y")
find . -size +400k -exec -zip total_lokal_logs_$date {} +
find . -name *.log -size +10000k -exec rm {} \;
Das klappt aber irgendwie nicht, zumindest nicht das mit dem Zippen, das löschen schon :)
Hat jemand ne Idee?
Danke und viele Grüße
hi,
Hallo,
ich hoffe jemand kann mir helfen.
Und zwar würde ich gerne in einem Ordner ein SH Script erstellen, dass in diesem Ordner *.log files sucht, die größer als X sind, diese files dann in ein Zip oder Tar packt, und danach dann diese *.log files löscht.Was ich versucht habe ist:
#!/bin/sh
date=$(date +"%m%d%Y")find . -size +400k -exec -zip total_lokal_logs_$date {} +
find . -name *.log -size +10000k -exec rm {} ;
nach -exec kommt doch dann der neue befehl, oder? also nicht "-zip"???
eher: tar -czf archiv.tar.gz verzeichnis/
(zip kenne ich nicht, was nichts heißen soll...)
mfg
tami
Das klappt so leider auch nicht, jetzt wird auch nicht mal mehr das file gelöscht.
hi,
Das klappt so leider auch nicht, jetzt wird auch nicht mal mehr das file gelöscht.
http://de.wikipedia.org/wiki/Find#exec
muss ja irgendwie ...;
s.a. http://www.linux-club.de/viewtopic.php?f=21&t=58811 bzw. google mit find und exec und tar ...;
mfg
tami
Moin,
s.a. http://www.linux-club.de/viewtopic.php?f=21&t=58811 bzw. google mit find und exec und tar ...;
Nicht direkt, -exec wird dort nicht verwendet. Auf diesen Fall hier übertragen würde der Befehl lauten:
find . -size +400k -print0 | xargs -0 tar -czf tarball.tar.gz
Funktioniert, falls die Kompressionsmethode egal ist.
Grüße Marco
Moin,
eher: tar -czf archiv.tar.gz verzeichnis/
Dort wird dann die Dateigröße nicht berücksichtigt, was ja scheinbar ein Kriterium ist.
Grüße Marco
Moin,
find . -size +400k -exec -zip total_lokal_logs_$date {} +
find . -size +400k -exec zip total_lokal_logs_$date {} ;
(ungetestet)
Grüße Marco
Moin,
find . -size +400k -exec -zip total_lokal_logs_$date {} +
find . -size +400k -exec zip total_lokal_logs_$date {} ;
(ungetestet)
Grüße Marco
Danke, ich habs jetzt hinbekommen:
find . -name *.log -size +5M -exec zip -r logs_`date +%d.%m.%Y_%H.%M`.zip {} +
find . -name *.log -size +5M -exec rm {} \;
find . -type f -mtime +20 -delete
Moin,
find . -name *.log -size +5M -exec rm {} ;
Warum nutzt du hier nicht auch einfach -delete ? :)
Grüße Marco
Tach,
Und zwar würde ich gerne in einem Ordner ein SH Script erstellen, dass in diesem Ordner *.log files sucht, die größer als X sind, diese files dann in ein Zip oder Tar packt, und danach dann diese *.log files löscht.
die Standardlösung dafür wäre logrotate.
mfg
Woodfighter