Page 1 of 1

Sehr viele Dateien eines Ordners älter als 1 Jahr löschen?

Posted: 2007-04-13 19:05
by fulltilt
Ich habe hier auf einem Server eine Online Auktion laufen ...
Seit ca. 3 Jahren haben sich einige GB an alten Artikelbildern angehäuft.
Ich habe nun über ein Script Udate seit 1 Jahr die Möglichkeit alte Bilder automatisch zu löschen. Es bleiben aber immer noch ca. 9 GB die nur Balast sind und auch das Systembackup in die Knie zwingen ...

Gibt es eine Möglichkeit die Dateien eines Ordners ab einem bestimten datum zu löschen?

> /ordner/dateien.img älter als 1 jahr löschen

Re: Sehr viele Dateien eines Ordners älter als 1 Jahr löschen?

Posted: 2007-04-13 19:31
by flo
fulltilt wrote:Gibt es eine Möglichkeit die Dateien eines Ordners ab einem bestimten datum zu löschen?
nicht eher bis zu einem bestimmten Datum?
fulltilt wrote:> /ordner/dateien.img älter als 1 jahr löschen

Code: Select all

man find
z.B.:

Code: Select all

find / -mtime +7 -exec rm -v {} ;

Re: Sehr viele Dateien eines Ordners älter als 1 Jahr löschen?

Posted: 2007-04-13 19:38
by fulltilt
Danke :-)

wäre es so machbar z.B.:

Code: Select all

find /var/www/htdocs/ordner -type f -name '*.jpg' -ctime +365 -print0 | xargs -r -0 rm

Re: Sehr viele Dateien eines Ordners älter als 1 Jahr löschen?

Posted: 2007-04-13 20:54
by flo
Nimm die "-exec"-Variante - rm beschwert sich auch gerne über zu lange Parameterlisten.

Re: Sehr viele Dateien eines Ordners älter als 1 Jahr löschen?

Posted: 2007-04-14 13:37
by oxygen
xargs handhabt das schon

Re: Sehr viele Dateien eines Ordners älter als 1 Jahr löschen?

Posted: 2007-04-14 13:44
by fulltilt
Danke :-)

Habe leider keinen Erfolg damit - sind zuviele Dateien > 18602 St. (.jpg & .img).
Der Befehl wird einfach ignoriert ....
Gibt es noch eine andere Möglichkeit bei so vielen Dateien?
flo wrote:Nimm die "-exec"-Variante - rm beschwert sich auch gerne über zu lange Parameterlisten.

Re: Sehr viele Dateien eines Ordners älter als 1 Jahr löschen?

Posted: 2007-04-14 14:18
by oxygen
Mit der Anzahl der Dateien hat es nicht zu tun, z.B.
# seq 1 100000 | xargs touch
# ls -l | wc -l
100001
# find . -type f -print0 | xargs -0 rm
# ls -l | wc -l
1
Wahrscheinlich ist -ctime nicht was du suchst. Ich würde eher -mtime probieren. Du kannst/solltest vorher die Ausgabe von find überprüfen, eh du rm drauf los lässt.

Re: Sehr viele Dateien eines Ordners älter als 1 Jahr löschen?

Posted: 2007-04-14 14:21
by lord_pinhead
Bei mir läuft das mit xargs aber durch. Was für eine Ausgabe kommt da?

Code: Select all

intranet:~/test# ls -la | wc -l
18093
intranet:~/test# find . -iname *.jpg | xargs rm
intranet:~/test# ls -la | wc -l
4
intranet:~/test# ls -la
insgesamt 436
drwxr-xr-x    2 root     root       434176 14. Apr 14:20 ./
drwxr-xr-x    8 root     root         4096 14. Apr 14:13 ../
-rwxr-xr-x    1 root     root           97 14. Apr 14:18 test.sh*
Edit: Oxygen hatte die selbe idee *G*

Re: Sehr viele Dateien eines Ordners älter als 1 Jahr löschen?

Posted: 2007-04-14 14:26
by fulltilt
Hm - ich bekomme überhaupt keine Ausgabe ...
Lord_Pinhead wrote:Bei mir läuft das mit xargs aber durch. Was für eine Ausgabe kommt da?

Code: Select all

intranet:~/test# ls -la | wc -l
18093
intranet:~/test# find . -iname *.jpg | xargs rm
intranet:~/test# ls -la | wc -l
4
intranet:~/test# ls -la
insgesamt 436
drwxr-xr-x    2 root     root       434176 14. Apr 14:20 ./
drwxr-xr-x    8 root     root         4096 14. Apr 14:13 ../
-rwxr-xr-x    1 root     root           97 14. Apr 14:18 test.sh*
Edit: Oxygen hatte die selbe idee *G*

Re: Sehr viele Dateien eines Ordners älter als 1 Jahr löschen?

Posted: 2007-04-14 14:32
by fulltilt
mit:

Code: Select all

find . -iname *.jpg -mtime +365 -print0 | xargs ls -l
listet er mir jetzt alles von 2007 auf ...
wie müsste das aussehen um alles vor 2007 bzw. älter als 2006 zu löschen?

fulltilt wrote:Hm - ich bekomme überhaupt keine Ausgabe ...
Lord_Pinhead wrote:Bei mir läuft das mit xargs aber durch. Was für eine Ausgabe kommt da?

Code: Select all

intranet:~/test# ls -la | wc -l
18093
intranet:~/test# find . -iname *.jpg | xargs rm
intranet:~/test# ls -la | wc -l
4
intranet:~/test# ls -la
insgesamt 436
drwxr-xr-x    2 root     root       434176 14. Apr 14:20 ./
drwxr-xr-x    8 root     root         4096 14. Apr 14:13 ../
-rwxr-xr-x    1 root     root           97 14. Apr 14:18 test.sh*
Edit: Oxygen hatte die selbe idee *G*

Re: Sehr viele Dateien eines Ordners älter als 1 Jahr löschen?

Posted: 2007-04-18 09:29
by Joe User
Syntax beachten, dann klappt es auch:

Code: Select all

find /var/www/htdocs/ordner/ -type f -name *.jpg -mtime +365 -print0 | xargs -0 rm -f