Wie viele von Ihnen möchten Ihre Server per Handzeichen neu starten? Ich sehe keine Hände.
Lange Betriebszeiten sind beeindruckend, nicht wahr? Es macht Sie zu einem der coolen Kids, die mit Ihrer Betriebszeit von 853 Tagen auf einem Produktionssystem prahlen. Was nicht so cool ist, ist, dass Ihre Benutzer gerne /tmp
verwenden als ihre persönliche Müllhalde ohne Rücksicht auf die Gesundheit des Gesamtsystems oder Ihre Rechte zum Angeben der Betriebszeit. Und beim Neustart werden keine Benutzerdateien gelöscht, sondern nur Systemdateien – selbst diese Erleichterung ist vorübergehend, bis die Dienste neu gestartet werden und Benutzer Anwendungen öffnen.
Hinweis: Eine Ausnahme vom Nichtlöschen von temporären Benutzerdateien nach einem Neustart ist die Aktivierung von
tmp.mount
, aber das ist ein Thema für einen anderen Artikel. Außerdem gibt es Systemverwaltungsskripte für RHEL 7 und höher.
Es ist unmöglich, Benutzer zu zwingen, die Richtlinie zum Entfernen von Dateien aus /tmp
einzuhalten Verzeichnis rechtzeitig. Was also soll ein frustrierter Systemadministrator tun, wenn Sie Dutzende, Hunderte oder sogar Tausende von /tmp
haben Verzeichnisse und Benutzer zu behandeln? Die Antwort ist die Bereitstellung von Verwaltungsskripten für Benutzerdateien.
Sie können Haushaltsskripts erstellen und sie in crontab
platzieren um regelmäßig Benutzerdateien aus /tmp
zu entfernen Verzeichnis. Es ist ein unglücklicher, aber notwendiger Service, den Sie Ihren Benutzern bieten müssen. Die meisten erfahrenen Systemadministratoren werden Ihnen sagen, dass Sie keine Dateien aus /tmp
entfernen sollten es sei denn, Sie wissen, dass sie nicht verwendet werden. Das ist ein guter Rat. Einige Dienste schreiben Sperrdateien nach /tmp
, einige Anwendungen verwenden es und Benutzer verwenden es. Wie bestimmen Sie also, welche Dateien Ihr Verwaltungsskript problemlos entfernen kann?
[ Kostenloser Download:Spickzettel für fortgeschrittene Linux-Befehle. ]
Wie wäre es mit dem Filtern von Dateien nach der Zeit des letzten Zugriffs? Es ist eine gute Wahl, wenn Sie ein Zeitlimit für Dateien haben, die in /tmp
verbleiben . Zum Beispiel, wenn Sie Ihre Benutzer warnen, dass Dateien in /tmp
zurückgelassen wurden -Verzeichnis entfernt werden, wenn seit zwei Tagen nicht auf sie zugegriffen wurde, fortlaufend, sie sollten dies zur Kenntnis nehmen. Die Verwendung der letzten Zugriffszeit für Benutzerdateien löst das Problem, wenn Sie auch Dateien ausschließen, die dem Root-Benutzer gehören. Verwenden Sie zum Beispiel:
find /tmp -type f \( ! -user root \) -atime +2
Dieses Skript zeigt alle Dateien in /tmp
an Verzeichnis, das nicht root gehört und auf das vor mehr als zwei Tagen zugegriffen wurde. Fügen Sie nun den Schalter zum Entfernen des Befehls hinzu:
find /tmp -type f \( ! -user root \) -atime +2 -delete
Kopieren Sie diesen Text in eine Datei, machen Sie ihn ausführbar und erstellen Sie eine crontab
Eintrag, der dieses Skript alle acht Stunden ausführt. Sie können dies beispielsweise zu Ihrem crontab
hinzufügen :
* */8 * * * /opt/scripts/tmp.clean.sh
Dieses Skript und dieser Zeitplan stellen sicher, dass Ihr /tmp
Verzeichnis wird relativ frei von Müll gehalten. Es ist jedoch nicht narrensicher. Wenn ein Benutzer beschließt, eine große Datenmenge in die /tmp
Verzeichnis kann diese Aktion andere Probleme verursachen, z. B. dass Sie sich nicht über SSH am System anmelden können.
Pflege von /tmp
Verzeichnis ist nicht einfach. Benutzer lieben es, Dateien in /tmp
zu kopieren und lasse sie auf unbestimmte Zeit dort. Glücklicherweise gibt es für Wiederholungstäter immer die Möglichkeit, ihr Konto zu sperren oder eine streng formulierte E-Mail über den Verlust des Zugriffs auf ein System zu senden, bis die Angelegenheit durch ihren Vorgesetzten geklärt ist. Diese Taktiken erregen normalerweise die Aufmerksamkeit des Benutzers und weitere Verstöße sind selten.