GNU/Linux >> Znalost Linux >  >> Linux

Kdy se vymaže /tmp?

Řešení 1:

To záleží na vaší distribuci. Na některých systémech se smaže pouze při spuštění, u jiných běží cronjob s mazáním položek starších než n hodin.

  • Na Ubuntu 14:pomocí tmpreaper který je volán /etc/cron.daily , nakonfigurovaný pomocí /etc/default/rcS a /etc/tmpreaper.conf . (Poděkování za tuto odpověď).
  • Na Ubuntu 16:pomocí tmpfiles.d . (Poděkování za tuto odpověď).
  • Na jiných systémech podobných Debianu:při startu (pravidla jsou definována v /etc/default/rcS ).
  • Na systémech typu RedHat:podle věku (RHEL6 to bylo /etc/cron.daily/tmpwatch; RHEL7/RHEL8 a podobný RedHat se systemd je nakonfigurován v /usr/lib/tmpfiles.d/tmp.conf , voláno systemd-tmpfiles-clean.service ).
  • Na Gentoo /etc/conf.d/bootmisc .

Řešení 2:

Na CentOS (a předpokládám, že Fedora) je v /etc/cron.daily úloha s názvem tmpwatch . Toto spustí /usr/sbin/tmpwatch , která smaže soubory, ke kterým se během zadaného počtu hodin nepřistoupilo, tj. výchozí chování je prozkoumat atime aby soubor vyhodnotil, zda byl nedávno použit.

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

Ostatní distribuce (a instalace) mohou mít /tmp připojeno jako tmpfs, což je souborový systém v paměti. Toto bude vymazáno při spouštění.

Řešení 3:

Na Ubuntu 11.10, které používám, je v /etc/init/mounted-tmp.conf počáteční skript . Začátek říká toto:

# 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)

Můžete si přečíst více podrobností, ale obecně /tmp je vyčištěn, když je připojen, nebo /usr je namontován. To se pravidelně stává při bootování, takže toto /tmp čištění probíhá při každém spuštění.

V /etc/default/rcS máte TMPTIME set, který se používá ve výše uvedeném init skriptu k naplnění dvou find příkazy na konci – v podstatě řídí mazání souborů na základě jejich času (upraveno, změněno, zpřístupněno).

Řešení 4:

Od Fedory 18 dále, /tmp je namontován na tmpfs (tj. RAM) ve výchozím nastavení, a proto se při vypnutí vymaže.

Toto chování lze zakázat vydáním systemctl mask tmp.mount a restartujte (a znovu povolte vydáním systemctl unmask tmp.mount a restartujte počítač) a poté /tmp bude namontován na / souborový systém a lze jej ovládat pomocí /usr/lib/tmpfiles.d/tmp.conf nastavení.

Viz http://fedoraproject.org/wiki/Features/tmp-on-tmpfs a man tmpfiles.d pro více podrobností o každém případě.

Řešení 5:

Na RHEL 6.2 jsou soubory v /tmp odstraněny pomocí tmpwatch, pokud nebyly zpřístupněny po dobu 10 dnů.

Soubor /etc/cron.daily/tmpwatch definuje způsob, jakým se tmpwatch nazývá.

#! /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

Argumenty -x jsou soubory, které mají být vyloučeny. Argument 2. až poslední je doba čekání po době posledního přístupu. Posledním argumentem je adresář, který se má prozkoumat.


Linux
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Kdy použít /dev/random vs /dev/urandom?

  3. Přesunout /tmp do Ram?

  1. Ubuntu 14.04 „nedošlo k přehrávání Uri na vstupním souboru:///*“?

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

  3. Jak zakázat automatické mazání souborů v adresářích /tmp a /var/tmp v CentOS / RHEL 5,6

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

  2. Jak změnit výchozí /tmp na /home/user/tmp

  3. Rozdíl a správné použití pro /tmp a /var/tmp