GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

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

In CentOS/RHEL 7 bereinigt tmpfiles /tmp oder /var/tmp, indem nicht verwendete Dateien entfernt werden. Diese Funktion hieß „tmpwatch ” in CentOS/RHEL 6, das von crond aufgerufen wird, wird jedoch jetzt durch den Timer von systemd auf CentOS/RHEL 7 realisiert.

Derzeit sind die detaillierten Funktionen von tmpfiles in Konfigurationsdateien beschrieben:

/usr/lib/systemd/system/systemd-tmpfiles-clean.timer
/usr/lib/systemd/system/systemd-tmpfiles-clean.service
/usr/lib/tmpfiles.d/tmp.conf

Kurz gesagt, die verfügbaren Funktionen sind:

  • Entfernen von Dateien/Verzeichnissen in /tmp länger als 10 Tage nicht zugegriffen (definiert in tmp.conf )
  • Entfernen von Dateien/Verzeichnissen in /var/tmp länger als 30 Tage nicht zugegriffen (definiert in tmp.conf )
  • es gibt mehrere Dateien, die nicht entfernt werden (definiert in tmp.conf)
  • Der Entfernungsbefehl lautet „/usr/bin/systemd-tmpfiles –clean „(definiert in systemd-tmpfiles-clean.service )

Nicht zugegriffen ” wird entschieden, indem alle atime überprüft werden /mtime /ctime der Datei/Verzeichnis. Falls also auch nur einer von atime/mtime/ctime einer Datei in /tmp/ jünger als 10 Tage ist, wird die Datei nicht entfernt. Wenn eine Datei/ein Verzeichnis in /tmp/ nicht von tmpfiles entfernt wird, auch wenn es scheint, dass sie älter als 10 Tage ist, kann der Grund überprüft werden, indem ein Befehl mit Debug-Optionen wie unten manuell ausgeführt wird:

# SYSTEMD_LOG_TARGET=console SYSTEMD_LOG_LEVEL=debug /usr/bin/systemd-tmpfiles --clean

Unten sieht beispielsweise vor, dass ein Verzeichnis „/tmp/latest“ aufgrund seiner atime nicht entfernt werden kann.

# SYSTEMD_LOG_TARGET=console SYSTEMD_LOG_LEVEL=debug /usr/bin/systemd-tmpfiles --clean 2>&1 | grep latest
Directory "/tmp/latest": access time Wed 2017-12-06 16:56:28.771577 IST is too new

Beispielkonfigurationsdateien

Unten sind die 3 Beispielkonfigurationsdateien (unbearbeitet) mit ihren Standardeinstellungen.

# cat /usr/lib/systemd/system/systemd-tmpfiles-clean.timer
[Unit]
Description=Daily Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)

[Timer]
OnBootSec=15min
OnUnitActiveSec=1d
# cat /usr/lib/tmpfiles.d/tmp.conf
# Clear tmp directories separately, to make them easier to override
v /tmp 1777 root root 10d
v /var/tmp 1777 root root 30d

# Exclude namespace mountpoints created with PrivateTmp=yes
x /tmp/systemd-private-%b-*
X /tmp/systemd-private-%b-*/tmp
x /var/tmp/systemd-private-%b-*
X /var/tmp/systemd-private-%b-*/tmp
# cat /usr/lib/systemd/system/systemd-tmpfiles-clean.service
[Unit]
Description=Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
DefaultDependencies=no
Conflicts=shutdown.target
After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target time-sync.target
Before=shutdown.target

[Service]
Type=oneshot
ExecStart=/usr/bin/systemd-tmpfiles --clean
IOSchedulingClass=idle


Cent OS
  1. Bash =~ Regex und Https://regex101.com/?

  2. Unterschied zwischen /var/log/messages, /var/log/syslog und /var/log/kern.log?

  3. CentOS/RHEL:Einhängepunkt /tmp wird nicht automatisch eingehängt, wenn er in /etc/fstab hinzugefügt wird

  4. UNIX/Linux:Was ist die korrekte Berechtigung für die Verzeichnisse /tmp und /var/tmp?

  5. CentOS / RHEL :So rotieren Sie /var/log/wtmp- und /var/log/btmp-Dateien mit logrotate

So deaktivieren Sie das automatische Löschen der Dateien in den Verzeichnissen /tmp und /var/tmp in CentOS / RHEL 5,6

Installieren Sie Binärdateien in /bin, /sbin, /usr/bin und /usr/sbin, Interaktionen mit --prefix und DESTDIR

Django static_root in /var/www/... - keine Berechtigungen für collectstatic

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

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

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