openSUSE 11.3 – Verzeichnisse wie /tmp automatisch entleeren lassen

Als ich heute auf meinem Netbook (openSUSE 11.3) in das temporäre Verzeichnis /tmp geschaut habe, musste ich feststellen, dass das Verzeichnis auf 3,2 GB angewachsen ist und auch nie manuell entleert wurde. Bestes Beispiel: Firefox speichert heruntergeladene Dateien in diesem Verzeichnis, wenn man z.B. PDF-Dateien oder Archive direkt öffnet. Jedoch werden diese nie beim Beenden gelöscht. Somit sammelt sich mit der Zeit eine Menge Dateien an.

Größe des /tmp Verzeichnises in der Konsole ermitteln:

du -sch /tmp

Ergebnis:

3,2G    /tmp
3,2G    insgesamt

Kein Wunder, ich hatte vorher auch openSUSE 11.2 drauf gehabt. ;-)

Es gibt 3 Möglichkeiten die Verzeichnisse zu entleeren.

1. Möglichkeit: manuell in der Konsole per root löschen

Vorteil: Kontrolle und Gewissheit. :-)

Nachteil: Man muss im Runlevel 1 das Verzeichnis entleeren. Danach ist ein Neustart fällig, weil evtl. laufende Prozesse auf fehlende Dateien zugreifen und unvorgesehene Fehler auslösen können.

find /tmp -maxdepth 1 -mindepth 1 -print0 | xargs -0r rm -rf

2. Möglichkeit: täglich per Cronjob löschen

Verantwortliches Skript: /etc/cron.daily/suse.de-clean-tmp

Vorteil: Die Vorhaltezeit für temporäre Dateien und Verzeichnisse kann nach Tagen bestimmt werden. Hier kann man auch weitere oder andere Verzeichnisse eintragen, die gelöscht werden sollen. Systeme, die Tage lang durchlaufen, werden so auch täglich bereinigt.

Nachteil: Es wird nur teilweise entleert. Dateien, die mit root-Rechten versehen sind, werden nicht gelöscht (Dieses Verhalten kann man zwar ändern, würde ich jedoch nicht empfehlen) und kann daher trotzdem anwachsen, wenn aber auch nicht so schnell.

  1. Krunner per ALT+F2 aufrufen und folgendes eingeben, um den sysconfig-Editor aufzurufen:
    yast2 sysconfig
  2. Auf System / Cron / MAX_DAYS_IN_TMP klicken und die maximale Vorhaltezeit in Tagen (hier als Beispiel: 7 Tage) eintragen (0 = deaktiviert): 7
  3. Optional: Wenn man weitere Verzeichnisse einfügen möchte oder sogar ganz andere Verzeichnisse löschen will, geht man auf System / Cron / TMP_DIRS_TO_CLEAR und trägt dort weitere Verzeichnisse ein. Beispiel: /tmp /home/user/irgendwas /var/abc
  4. Optional, jedoch mit Vorsicht zu genießen: Man kann weitere Eigentümer eintragen (oder entfernen), deren Dateien bzw. Verzeichnisse nicht gelöscht werden dürfen. Hierzu geht man auf System / Cron / OWNER_TO_KEEP_IN_TMP und trägt beispielsweise ein: root dummy itsme
  5. Mit Okay bestätigen und ggfs. nochmal die Änderungen bestätigen lassen.

3. Möglichkeit: beim Booten löschen

Verantwortliches Skript: /etc/init.d/boot.cleanup

Vorteil: Dateien und Verzeichnisse unterhalb von /tmp werden restlos gelöscht. Auf Wunsch können noch weitere Verzeichnisse zum Löschen angegeben werden. Kein Neustart nötig.

Nachteil: Löschvorgang ist nur zur Bootzeit möglich und ist unabhängig vom Eigentümer und Alter.

  1. Krunner per ALT+F2 aufrufen und folgendes eingeben, um den sysconfig-Editor aufzurufen:
    yast2 sysconfig
  2. Auf System / Cron / CLEAR_TMP_DIRS_AT_BOOTUP klicken und folgendes eintragen (no = deaktiviert): yes
  3. Optional: Wenn man weitere Verzeichnisse einfügen möchte oder sogar ganz andere Verzeichnisse löschen will, geht man auf System / Cron / TMP_DIRS_TO_CLEAR und trägt dort weitere Verzeichnisse ein. Beispiel: /tmp /home/user/irgendwas /var/abc
  4. Mit Okay bestätigen und ggfs. nochmal die Änderungen bestätigen lassen.

Ich habe mich für die letztere Variante entschieden. Welche Variante ihr bevorzugt, überlasse ich euch. Have a lot of fun! ;-)

Feedbacks sind erwünscht. :-)