Löschen von temporären Dateien

Aus kvwmap
Wechseln zu: Navigation, Suche

tmp-Verzeichnis von MapServer leeren

Das Leeren eines Verzeichnisses mag einfach erscheinen.

rm -R /var/www/tmp*

may do the job.

Aber so einfach ist das nicht. 1. Handelt es sich um sehr viele Dateien macht der rm Befehl so nicht mit. 2. Es sollen nicht alle Dateien gelöscht werden, sondern nur ältere mit denen nicht mehr gearbeitet wird.

Daher kommt eher folgender Befehl zur Anwendung:

find /var/www/tmp -mtime +1 ! -path /var/www/tmp -exec rm -rf {} +

Hier wird erst alles gelistet was älter als 1 Tag alt und in /var/www/tmp enthalten ist, außer /var/www/tmp selbst. Anschließend wird es dem rm Befehl übergeben und der löscht nach und nach alles weg. Diese Befehlszeile sollte vorzugsweise ein mal pro Tag innerhalb eines Cronjobs abgearbeitet werden. z.B. jeden Morgen 1:01

1 1 * * * find /var/www/tmp -mtime +1 ! -path /var/www/tmp -exec rm -rf {} +

Die find Befehlszeile kann auch in einem Bash-Script stehen, welches im Verzeichnis /etc/cron.daily abgelegt ist.

#!/bin/bash
TMP_DIR=/var/www/tmp
AGE=1
find ${TMP_DIR} -mtime +${AGE} ! -path ${TMP_DIR} -exec rm -rf {} +