Hiho
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.
Ja, das geht sehr einfach:
> find /tmp -mmin +240 -exec rm {} ;
Der Befehl find findet Dateien hier:
- im Ordner /tmp
- mit einer Änderungszeit die mehr(+) als 4*60min zurückliegt
- und führt danach für jede dieser Dateien den Befehl rm aus (löschen)
Ich empfehle mit diesem Befehl aber ÄUßERSTE VORSICHT, da man sich mit einem kleinen Tippfehler sehr, sehr schnell das System zerschießen kann. Die angegebene Zeile habe ich gestestet, wenn du sonstige Anpassungen daran vornehmen möchtest, empfehle ich als Lektüre
> man find
(auch hier zu finden http://linux.about.com/od/commands/l/blcmdl1_find.htm)
und
http://de.wikipedia.org/wiki/Find
(in der englischen Wikipedia gibts sogar noch mehr)
Bei unsicherheiten einfach mal voher statt mit der exec-Option mit der print-Option starten, dann wird nur angezeigt was gefunden wurde:
> find /tmp -mmin +240 -print
Wenn du das ganze automatisieren möchtest musst solltest du du deinen (gestesteten! Du siehst dann vermutlich keine Fehlermeldungen mehr!) in /etc/cron.d/daily hinzufügen, ist dein PC dagegen ein ganz normaler Desktop-PC wird es völlig genügen, den eingebauten Mechanismus zum Leeren des TMP-Verzeichnisses zu nutzen, dessen Säuberungsinterval du in /etc/default/rcS mit der Option TMPTIME=0 (0 bedeutet bei jedem Neustart, andere Zahlen sind Tagesintervalle) einstellen kannst.
Viel Erfolg