GNU/Linux >> Linux Esercitazione >  >> Linux

Quando viene cancellato /tmp?

Soluzione 1:

Dipende dalla tua distribuzione. Su alcuni sistemi, viene eliminato solo all'avvio, altri hanno cronjob in esecuzione che eliminano elementi più vecchi di n ore.

  • Su Ubuntu 14:utilizzo di tmpreaper che viene chiamato da /etc/cron.daily , configurato tramite /etc/default/rcS e /etc/tmpreaper.conf . (Crediti a questa risposta).
  • Su Ubuntu 16:utilizzo di tmpfiles.d . (Crediti a questa risposta).
  • Su altri sistemi simili a Debian:all'avvio (le regole sono definite in /etc/default/rcS ).
  • Sui sistemi simili a RedHat:per età (RHEL6 era /etc/cron.daily/tmpwatch; RHEL7/RHEL8 e simile a RedHat con systemd è configurato in /usr/lib/tmpfiles.d/tmp.conf , chiamato da systemd-tmpfiles-clean.service ).
  • Su Gentoo /etc/conf.d/bootmisc .

Soluzione 2:

Su CentOS (e presumo Fedora), c'è un lavoro in /etc/cron.daily chiamato tmpwatch . Questo esegue /usr/sbin/tmpwatch , che eliminerà i file a cui non è stato effettuato l'accesso nel numero di ore specificato, ovvero, il comportamento predefinito è esaminare il atime affinché il file valuti se è stato utilizzato di recente.

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

Altre distribuzioni (e installazioni) possono avere /tmp montato come tmpfs, che è un filesystem in memoria. Questo verrà cancellato all'avvio.

Soluzione 3:

Su Ubuntu 11.10 che sto usando, c'è uno script upstart in /etc/init/mounted-tmp.conf . L'inizio dice questo:

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

Puoi leggere più dettagli, comunque in generale /tmp viene pulito quando è montato o /usr è montato. Questo accade regolarmente all'avvio, quindi questo /tmp la pulizia viene eseguita a ogni avvio.

In /etc/default/rcS hai TMPTIME set, che è usato nello script init sopra per alimentare i due find comandi alla sua fine - fondamentalmente controllando l'eliminazione dei file in base ai loro tempi (modificati, modificati, accessi).

Soluzione 4:

Da Fedora 18 in poi, /tmp è montato su tmpfs (cioè RAM) per impostazione predefinita, e quindi cancellato allo spegnimento.

Questo comportamento può essere disabilitato immettendo systemctl mask tmp.mount e riavviare (e riattivare emettendo systemctl unmask tmp.mount e riavvia), quindi /tmp verrà montato sul / filesystem e può essere controllato da /usr/lib/tmpfiles.d/tmp.conf impostazioni.

Vedere http://fedoraproject.org/wiki/Features/tmp-on-tmpfs e man tmpfiles.d per maggiori dettagli su ciascun caso.

Soluzione 5:

Su RHEL 6.2 i file in /tmp vengono eliminati da tmpwatch se non vi si accede da 10 giorni.

Il file /etc/cron.daily/tmpwatch definisce il modo in cui viene chiamato tmpwatch.

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

Gli argomenti -x sono i file da escludere. Il penultimo argomento è il tempo di attesa dopo l'ultimo accesso. L'ultimo argomento è la directory da esaminare.


Linux
  1. Ubuntu 14.04 "non ha ricevuto un file Uri di riproduzione in entrata::///*"?

  2. Come systemd-tmpfiles pulisce /tmp/ o /var/tmp (sostituzione di tmpwatch) in CentOS/RHEL 7

  3. Come disabilitare l'eliminazione automatica dei file nelle directory /tmp e /var/tmp in CentOS / RHEL 5,6

  4. Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

  5. Perché mettere cose diverse da /home in una partizione separata?

Directory Linux tmp:tutto ciò che devi sapere

Bash =~ Regex e HTTPS://regex101.com/?

Quando usare /dev/random vs /dev/urandom?

Linux – /sbin/init non esiste?

I siti web dovrebbero vivere in /var/ o /usr/ in base all'utilizzo consigliato?

Quando viene eseguito `cron.daily`?