BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Temporäre Dateien automatisch löschen

Mit Hilfe von tmpreaper lassen sich automatisch Dateien in temporären Verzeichnissen löschen, auf welche eine festgelegte Zeit lang nicht mehr zugegriffen worden ist. Im FreeBSD Portbaum findet man tmpreaper unter sysutlis/tmpreaper:

# cd /usr/ports/sysutils/tmpreaper && make install clean

Es kann angegeben werden, in welchem Verzeichnis nach Dateien gesucht werden soll, auf die eine bestimmte Zeit nicht mehr zugegriffen worden ist. Die festgelegte Zeit wird dabei mit der Zugriffszeit (atime) der Datei verglichen. Mit der --showdeleted Option wird angezeigt, welche Dateien gelöscht werden. Die --test Option zusammen mit der --showdeletet Option zeigen an, welche Dateien gelöscht werden würden, löschen diese aber nicht. Im folgenden Beispiel wird nach Dateien in /tmp gesucht, auf welche seit mehr als 12 Stunden nicht mehr zugegriffen worden ist:

# tmpreaper --test --showdeleted 12h /tmp
(PID 5913) Pretending to clean up directory `/tmp'.
(PID 5914) Pretending to clean up directory `.X11-unix'.
Not a regular file or directory `X0' -- skipping.
(PID 5914) Back from recursing down `.X11-unix'.
(PID 5914) Pretending to clean up directory `.XIM-unix'.
(PID 5914) Back from recursing down `.XIM-unix'.
(PID 5914) Pretending to clean up directory `.ICE-unix'.
(PID 5914) Back from recursing down `.ICE-unix'.
(PID 5914) Pretending to clean up directory `.font-unix'.
(PID 5914) Back from recursing down `.font-unix'.
Pretending to remove file `/tmp/.X0-lock'.
rm /tmp/.X0-lock
Pretending to remove file `/tmp/test'.
rm /tmp/test

Mit der --protect Option können Dateien angegeben werden, welche nicht gelöscht werden sollen:

# tmpreaper --test --showdeleted --protect '/tmp/.*-lock' 12h /tmp
(PID 5993) Pretending to clean up directory `/tmp'.
(PID 5994) Pretending to clean up directory `.X11-unix'.
Not a regular file or directory `X0' -- skipping.
(PID 5994) Back from recursing down `.X11-unix'.
(PID 5994) Pretending to clean up directory `.XIM-unix'.
(PID 5994) Back from recursing down `.XIM-unix'.
(PID 5994) Pretending to clean up directory `.ICE-unix'.
(PID 5994) Back from recursing down `.ICE-unix'.
(PID 5994) Pretending to clean up directory `.font-unix'.
(PID 5994) Back from recursing down `.font-unix'.
Entry matching `--protect' pattern skipped. `/tmp/.X0-lock'
Pretending to remove file `/tmp/test'.
rm /tmp/test

Ohne die --test Option werden die Dateien gelöscht:

# tmpreaper --showdeleted --protect '/tmp/.*-lock' 12h /tmp
rm /tmp/test

Symlinks werden normalerweise nicht gelöscht. Sollen diese auch geprüft und ggf. entfernt werden, kann die --symlinks Option verwendet werden. Mehr Informationen findet man in der Manpage tmpreaper(8).

Comments (2)  Permalink

Comments

riot_dd @ 22.11.2008 21:27 UTC
Thx, das war mal wieder ein sehr nützlicher Tip von Dir.
rolle @ 24.12.2008 01:14 UTC
zum ersten mal ist mir heute /tmp "übergelaufen".
Es gibt die option: clear_tmp_enable="YES" in der rc.conf. Die in diesem zusammenhang auch ganz nützlich ist.

gruß rolle
No new comments allowed (anymore) on this post.