Dateien > als N Stunden löschen per Shell-Script

Hallo!

Kann mir jemand von den Wissenden hier helfen? Weiß nicht, ob es einfach zu lösen ist: Ich suche eine Möglichkeit in einem tmp Verzeichnis per Cron ein Script auszuführen, welches im Ordner befindliche Dateien die älter als vier Stunden sind, löscht. Betriebsystem ist Debian Squeeze.

Hallo,

Kann mir jemand von den Wissenden hier helfen? Weiß nicht, ob
es einfach zu lösen ist: Ich suche eine Möglichkeit in einem
tmp Verzeichnis per Cron ein Script auszuführen, welches im
Ordner befindliche Dateien die älter als vier Stunden sind,
löscht. Betriebsystem ist Debian Squeeze.

Mit find.
In etwa so:

find ORDNERPFAD -type f -mmin +240 | xargs -0 -r rm {} ;

-type f -> findet Files + ignoriert Ordner
-mmin +240 -> findet Files älter als 240 Min (-240 = jünger als )
| xargs -> führt den nachfolgenden Befehl auf die gefundenen Dateien aus

-0 -r rm {} ; -> der nachfolgende Befehl ist löschen wenn gefunden.

aber guck besser noch mal in „man find“ bevor Du irgendwas unwiederbringlich löscht …

Grüße
K.

Danke Klaus. Ich habe das mal getestet im Ordner sind dateien wie „sess_e7c0lnjfdtnm0n57acikkffln0“ enthalten. Wenn ich das ausführe, kommt die Meldung, nach einer Auflistung (vermutlich Treffer von find), nicht möglich: Der Dateiname ist zu lang

Hallo Klaus,

find ORDNERPFAD -type f -mmin +240 | xargs -0 -r rm

Sollte bei dem find nicht noch ein -print0 rein? Also:

find ORDNERPFAD -type f -mmin +2400 -print0 | xargs -0 rm

Viele Grüße
Marvin

In dem Fall kommt „nicht möglich: Datei oder Verzeichnis nicht gefunden“

Ordnerpfad ersetzt durch /tmp

In dem Fall kommt „nicht möglich: Datei oder Verzeichnis nicht
gefunden“

Ordnerpfad ersetzt durch /tmp

Edit: die Fehlermeldung kommt zwar, aber er löscht die Dateien, wie er soll! Sprich funktioniert Danke!

Hallo Shoto,

die Fehlermeldung kommt zwar, aber er löscht die
Dateien, wie er soll!

Hm, ist aber trotzdem unschön mit der Fehlermeldung. Allerdings kann ich das bei mir nicht nachvollziehen, d.h. ich bekomme keine Fehlermeldung.
Ich habe im Moment aber auch keine Idee, woran das liegen könnte.

Viele Grüße
Marvin