GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wann wird /tmp gelöscht?

Lösung 1:

Das hängt von deiner Distribution ab. Auf einigen Systemen wird es nur beim Booten gelöscht, auf anderen laufen Cronjobs, die Elemente löschen, die älter als n sind Stunden.

  • Unter Ubuntu 14:mit tmpreaper die von /etc/cron.daily aufgerufen wird , konfiguriert über /etc/default/rcS und /etc/tmpreaper.conf . (Dank an diese Antwort).
  • Unter Ubuntu 16:mit tmpfiles.d . (Dank an diese Antwort).
  • Auf anderen Debian-ähnlichen Systemen:beim Booten (die Regeln sind in /etc/default/rcS definiert ).
  • Auf RedHat-ähnlichen Systemen:nach Alter (RHEL6 war es /etc/cron.daily/tmpwatch; RHEL7/RHEL8 und RedHat-ähnlich mit systemd ist es in /usr/lib/tmpfiles.d/tmp.conf konfiguriert , aufgerufen von systemd-tmpfiles-clean.service ).
  • Auf Gentoo /etc/conf.d/bootmisc .

Lösung 2:

Unter CentOS (und ich nehme an, Fedora) gibt es einen Job in /etc/cron.daily namens tmpwatch . Dies führt /usr/sbin/tmpwatch aus , wodurch Dateien gelöscht werden, auf die in der angegebenen Anzahl von Stunden nicht zugegriffen wurde, d. h. das Standardverhalten besteht darin, atime zu untersuchen damit die Datei auswerten kann, ob sie kürzlich verwendet wurde.

http://linux.die.net/man/8/tmpwatch

Andere Distributionen (und Installationen) haben möglicherweise /tmp als tmpfs gemountet, was ein In-Memory-Dateisystem ist. Dies wird beim Booten gelöscht.

Lösung 3:

Unter Ubuntu 11.10, das ich verwende, gibt es ein Upstart-Skript in /etc/init/mounted-tmp.conf . Der Anfang davon sagt Folgendes:

# mounted-tmp - Clean /tmp directory
#
# Cleans up the /tmp directory when it does not exist as a temporary
# filesystem.

description "Clean /tmp directory"

start on (mounted MOUNTPOINT=/tmp) or (mounted MOUNTPOINT=/usr)

Genaueres kannst du aber im Allgemeinen /tmp nachlesen wird bereinigt, wenn es entweder gemountet oder /usr ist montiert. Dies passiert regelmäßig beim Booten, also /tmp Die Reinigung wird bei jedem Start ausgeführt.

In /etc/default/rcS Sie haben TMPTIME set, das im obigen Init-Skript verwendet wird, um die beiden find zu füttern Befehle an seinem Ende - steuert im Grunde das Löschen von Dateien basierend auf ihren Zeiten (geändert, geändert, zugegriffen).

Lösung 4:

Ab Fedora 18 /tmp ist auf tmpfs gemountet (d. h. RAM) standardmäßig und wird daher beim Ausschalten gelöscht.

Dieses Verhalten kann durch Ausgabe von systemctl mask tmp.mount deaktiviert werden und neu starten (und durch Ausgabe von systemctl unmask tmp.mount wieder aktiviert und Neustart) und dann /tmp wird auf / montiert Dateisystem und kann durch /usr/lib/tmpfiles.d/tmp.conf gesteuert werden Einstellungen.

Siehe http://fedoraproject.org/wiki/Features/tmp-on-tmpfs und man tmpfiles.d für weitere Einzelheiten zu jedem Fall.

Lösung 5:

Unter RHEL 6.2 werden die Dateien in /tmp von tmpwatch gelöscht, wenn 10 Tage lang nicht auf sie zugegriffen wurde.

Die Datei /etc/cron.daily/tmpwatch definiert, wie tmpwatch aufgerufen wird.

#! /bin/sh
flags=-umc
/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix \
    -x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix \
    -X '/tmp/hsperfdata_*' 10d /tmp

Die Argumente -x sind auszuschließende Dateien. Das vorletzte Argument ist die Wartezeit nach der letzten Zugriffszeit. Das letzte Argument ist das zu untersuchende Verzeichnis.


Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Wann sollte /dev/random vs. /dev/urandom verwendet werden?

  3. /tmp in den Ram verschieben?

  4. Ubuntu 14.04 „erhielt keinen Wiedergabe-URI bei der Eingabedatei:///*“?

  5. So bereinigt systemd-tmpfiles /tmp/ oder /var/tmp (Ersatz von tmpwatch) in CentOS / RHEL 7

Linux-tmp-Verzeichnis:Alles, was Sie wissen müssen

Linux – /sbin/init existiert nicht?

Warum andere Dinge als /home auf eine separate Partition legen?

Wie greife ich auf Postgres zu, wenn ich eine Fehlermeldung zu /var/run/postgresql/.s.PGSQL.5432 erhalte?

Sollten Websites gemäß der empfohlenen Verwendung in /var/ oder /usr/ leben?

Wann läuft `cron.daily`?