GNU/Linux >> Znalost Linux >  >> Cent OS

Jak systemd-tmpfiles vyčistí /tmp/ nebo /var/tmp (náhrada tmpwatch) v CentOS / RHEL 7

V CentOS/RHEL 7 tmpfiles vyčistí /tmp nebo /var/tmp odstraněním nepoužívaných souborů. Tato funkce se nazývala „tmpwatch ” v CentOS/RHEL 6, který je vyvolán crond, ale nyní je realizován časovačem systemd na CentOS/RHEL 7.

V současné době jsou podrobné funkce tmpfiles popsány v konfiguračních souborech:

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

Krátce řečeno, dostupné funkce jsou:

  • odebírání souborů/adresářů v /tmp bez přístupu déle než 10 dní (definováno v tmp.conf )
  • odebírání souborů/adresářů v /var/tmp bez přístupu déle než 30 dní (definováno v tmp.conf )
  • Existuje několik souborů, které nebudou odstraněny (definováno v tmp.conf)
  • příkaz pro odstranění je „/usr/bin/systemd-tmpfiles –clean “(definováno v systemd-tmpfiles-clean.service )

bez přístupu ” se rozhoduje zaškrtnutím všech atime /mtime /ctime souboru/adresáře. Tedy v případě, že i jeden z atime/mtime/ctime souboru v /tmp/ je novější než 10 dní, soubor nebude odstraněn. Pokud soubor/adresář v /tmp/ není odstraněn tmpfiles, i když se zdá, že je starší než 10 dní, příčinu lze zkontrolovat ručním spuštěním příkazu s možnostmi ladění, jak je uvedeno níže:

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

Níže je například uvedeno, že adresář „/tmp/latest“ nelze odstranit kvůli jeho atime.

# 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

Ukázkové konfigurační soubory

Níže jsou uvedeny 3 ukázkové konfigurační soubory (neupravené) s jejich výchozím nastavením.

# 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. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Bash =~ Regex A Https://regex101.com/?

  3. Debian – Přesunutí /var, /home do samostatného oddílu?

  1. CentOS/RHEL:Přípojný bod /tmp se po přidání do /etc/fstab nepřipojí automaticky

  2. UNIX / Linux :Jaká je správná oprávnění adresářů /tmp a /var/tmp

  3. Nainstalujte binární soubory do /bin, /sbin, /usr/bin a /usr/sbin, interakce s --prefix a DESTDIR

  1. Django static_root v /var/www/... - žádná oprávnění ke collectstatic

  2. Kdy mám použít /dev/shm/ a kdy /tmp/?

  3. Jak zjistit, ze které složky běží proces?