Mit einem Cronjob reinigen / tmp

11

Ist es sicher, ein Bash-Skript und einen Cronjob zu verwenden, um /tmpautomatisch zu leeren , oder sollte ich das anders machen?

Jochem Kuijpers
quelle

Antworten:

13

/tmpwird bei jedem Systemneustart bereinigt, aber für Systeme, die nicht häufig neu gestartet werden können, und insbesondere, wenn das einzige Ziel darin besteht, /tmpein Skript zu bereinigen, kann es erstellt werden, um es zu bereinigen.

Kein Prozess sollte wichtige Daten dort speichern, aber es ist wichtig, dass Sie bereinigen /tmpkönnen, ohne Prozesse zu stören, in die Daten geschrieben werden tmp.

Ich empfehle, dafür zu verwenden tmpreaper.

Sie können es mit installieren sudo apt-get install tmpreaper.

Von der Manpage:

tmpreaper sucht rekursiv nach Dateien und leeren Verzeichnissen, auf die seit einer bestimmten Anzahl von Sekunden nicht mehr zugegriffen wurde, und entfernt sie. Normalerweise wird es verwendet, um Verzeichnisse zu bereinigen, die für temporären Speicherplatz verwendet werden, z. B. "/ tmp". Bitte lesen Sie den Abschnitt WARNUNGEN in diesem Handbuch.

Nutzung beinhaltet normalerweise Aufruf tmpreaperin /tmpmit Zeit spec Argumente. Das Argument dfür die Zeitangabe kann Tage, hStunden, mMinuten oder sSekunden umfassen.

Verwenden Sie den --testTrockenlauf und erhalten Sie eine Ausgabe der Ergebnisse, bevor Sie den Befehl tatsächlich ausführen. Auf diese Weise erhalten Sie eine Vorstellung davon, was gelöscht wird, bevor Sie Änderungen am Dateisystem vornehmen.

Bruno Pereira
quelle
Vielen Dank! Können Sie mir erklären, warum dies besser ist als eine einfache rekursive Entfernung, um meine Frage vollständig zu beantworten?
Jochem Kuijpers
1
Es ist nicht, es ist einfach einfacher zu verwenden und die verwendeten Argumente sind verständlicher. Ein einfaches rm -rfauf einer Liste von Dateien, die von zurückgegeben werden, findwürde den Job auch erledigen. Dies ist "nur ein anderer Weg", nicht einmal der beste, sondern der, den ich auf den von mir eingerichteten Servern verwende.
Bruno Pereira
tmpreaperscheint ein gutes Werkzeug zu sein, das es wert ist, verwendet zu werden --testund --showdeletesbeim Testen.
RichVel
3

Versuchen Sie, einen Cronjob hinzuzufügen, der ausgeführt wird

find /tmp/* -type d -mtime +5 -print0 | xargs -0 rm -rf 
find /tmp/* -type f -mtime +5 -print0 | xargs -0 rm -rf 

Dies würde alle Dateien löschen, die älter als 5 Tage sind.

Turbophi
quelle