Wie wird das /tmp
Verzeichnis aufgeräumt? Ist es automatisch? Wenn ja, wie oft wird es aufgeräumt?
filesystem
tmp
Olivier Lalonde
quelle
quelle
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
/ etc / fstab eingegeben.Antworten:
Hinweis! Diese Antwort ist veraltet seit mindestens Ubuntu 14.04. Sehen Sie sich die anderen Antworten für die aktuelle Situation an und stimmen Sie ihnen mit Wut zu, wenn sie sich als richtig erweisen. Schreibe auch einen Kommentar, damit ich hier den Link zu der aktuellen richtigen Antwort setzen kann.
Für 14.04 siehe https://askubuntu.com/a/759048/1366
Für 16.10 siehe https://askubuntu.com/a/857154/453746
Alte Antwort von 2011:
Die Bereinigung
/tmp
erfolgt über das Upstart-Skript/etc/init/mounted-tmp.conf
. Das Skript wird bei jedem Mounten von upstart ausgeführt/tmp
. Praktisch bedeutet das bei jedem Boot.Das Skript macht ungefähr Folgendes: Wenn eine Datei
/tmp
älter als$TMPTIME
Tage ist, wird sie gelöscht.Der Standardwert
$TMPTIME
ist 0, was bedeutet, dass alle Dateien und Verzeichnisse in/tmp
gelöscht werden.$TMPTIME
ist eine Umgebungsvariable, die in definiert ist/etc/default/rcS
.quelle
Das Verzeichnis wird standardmäßig bei jedem Start gelöscht, da
TMPTIME
es standardmäßig 0 ist.Hier können Sie die Uhrzeit in der folgenden Datei ändern:
TMPTIME
gibt an, wie oft das tmp dir in Tagen gelöscht werden sollquelle
tmpreaper
eine Chance geben.tmpwatch
sollte ein geeignetes Werkzeug sein.Während der
/tmp
Ordner kein Ort zum langfristigen Speichern von Dateien ist, möchten Sie gelegentlich die Dinge ein wenig länger als beim nächsten Neustart aufbewahren , was auf Ubuntu-Systemen der Standard ist. Ich kenne ein oder zwei Male, in die ich/tmp
während des Testens etwas heruntergeladen , nach Änderungen neu gestartet und dann die ursprünglichen Daten wieder verloren habe. Dies kann geändert werden, wenn Sie Ihre/tmp
Dateien länger aufbewahren möchten.Ändern der
/tmp
AufräumhäufigkeitDie Standardeinstellung, die Ihr System anweist,
/tmp
beim Neustart zu löschen, ist in der/etc/default/rcS
Datei enthalten. Der Wert, den wir betrachten, istTMPTIME
.Der aktuelle Wert von
TMPTIME=0
sagt, dass Dateien trotz des Alters der Datei beim Neustart gelöscht werden. Durch Ändern dieses Werts in eine andere (positive) Zahl wird die Anzahl der Tage geändert, die eine Datei überleben kann/tmp
.Mit dieser Einstellung können Dateien bis zu
/tmp
einem Alter von einer Woche gespeichert und beim nächsten Neustart gelöscht werden. Eine negative Zahl (TMPTIME=-1
) weist das System an, niemals etwas in zu löschen/tmp
. Dies ist wahrscheinlich nicht etwas, das Sie wollen, aber verfügbar ist.quelle
/etc/init/mounted-temp.conf
, aber es hat die Liniestart on mounted MOUNTPOINT=/tmp
, die mich denken lässt, dass es nicht anwendbar ist./var/tmp
anstelle von ab/tmp
.Ich überprüfe dies auf Ubuntu 16.10. Ich kann bestätigen, dass die Bearbeitung von / etc / default / rcS keinerlei Auswirkungen mehr hat und die Dateien in tmp durch einen Neustart gelöscht werden, unabhängig davon, was Sie in diese Datei einfügen. Wie andere erwähnen, wird tmpreaper nicht mehr verwendet.
Ich denke, die richtige Antwort ist, dass Ubuntu 16.10 ein neues Setup hat. Es gibt einen Ordner /etc/tmpfiles.d, der in der Manpage "tmpfiles.d" dokumentiert ist. In diesem Ordner sollte eine Konfigurationsdatei abgelegt werden, um zu steuern, ob / tmp gelöscht werden soll. Folgendes tue ich, um zu verhindern, dass Neustarts Dateien in / tmp löschen, sofern sie nicht 20 Tage alt sind:
Ersetzen Sie "20d" durch "-", wenn Sie niemals möchten, dass Dateien gelöscht werden. Dies ist mein Bestes, diese Manpage ist fast undurchdringlich mit Details.
Der Vorteil des neuen Setups besteht darin, dass ein File Cleaner auch dann ausgeführt werden kann, wenn das System nicht neu gestartet wird (wie bei einem immer auf dem Server befindlichen System). Das ist ein großes Plus, denke ich.
quelle
man tmpfiles.d
d /tmp/ - - - 20d
systemctl start systemd-tmpfiles-clean
In Ubuntu 14.04 wird dies von gemacht
tmpreaper
, was täglich von cron (from/etc/cron.daily
) aufgerufen wird . Das Programm kann über/etc/default/rcS
und konfiguriert werden/etc/tmpreaper.conf
.quelle
Vor dem 14.04 .:
Es wird bei jedem Neustart bereinigt.
quelle
tmpreaper
.In einem
systemd
Ubuntu (15.10 und neuer) wird dies von systemd unter Verwendung dessystemd-tmpfiles-clean
Dienstes und des Timers durchgeführt:Und
Also
systemd-tmpfiles-clean
läuft beim runterfahren und einmal am Tag anders. Die Dateien , die es reinigt kann erweitert werden , unter Verwendung der/etc/tmpfiles.d
in den genannten anderen Antwort .Sie können das Timerverhalten selbst mit
systemctl edit systemd-tmpfiles-clean.timer
und mit verschiedenenTimer
Systemkonfigurationsoptionen ändern (sieheman 5 systemd.timer
).quelle
/tmp
immer noch nicht aufgeräumt. und ich brauche es, um aufgeräumt zu werden. Selbst ein manueller Startsudo systemctl start systemd-tmpfiles-clean
reicht nicht aus. Irgendwelche Ideen warum?Auf einem unserer Server mit Ubuntu haben wir ein Skript zum Entfernen von Dateien in / tmp, das jede Nacht ausgeführt wird.
Das Skript lautet:
Speichern Sie einfach den Inhalt in einer Datei, und erstellen Sie einen Cron-Eintrag, um die Datei auszuführen. Da dies ein Webserver ist, möchten wir ihn aus offensichtlichen Gründen nicht neu starten.
quelle
ln -s /usr /tmp/kaboom
oder sogarln -s /* /tmp/
...