GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuándo se borra /tmp?

Solución 1:

Eso depende de tu distribución. En algunos sistemas, se elimina solo cuando se inicia, otros tienen cronjobs que eliminan elementos anteriores a n. horas.

  • En Ubuntu 14:usando tmpreaper que es llamado por /etc/cron.daily , configurado a través de /etc/default/rcS y /etc/tmpreaper.conf . (Créditos a esta respuesta).
  • En Ubuntu 16:usando tmpfiles.d . (Créditos a esta respuesta).
  • En otros sistemas similares a Debian:en el arranque (las reglas se definen en /etc/default/rcS ).
  • En sistemas tipo RedHat:por edad (RHEL6 era /etc/cron.daily/tmpwatch; RHEL7/RHEL8 y similar a RedHat con systemd está configurado en /usr/lib/tmpfiles.d/tmp.conf , llamado por systemd-tmpfiles-clean.service ).
  • En Gentoo /etc/conf.d/bootmisc .

Solución 2:

En CentOS (y supongo que Fedora), hay un trabajo en /etc/cron.daily llamado tmpwatch . Esto ejecuta /usr/sbin/tmpwatch , que eliminará los archivos a los que no se haya accedido en el número de horas especificado, es decir, el comportamiento predeterminado es examinar el atime para que el archivo evalúe si se ha utilizado recientemente.

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

Otras distribuciones (e instalaciones) pueden tener /tmp montado como tmpfs, que es un sistema de archivos en memoria. Esto se borrará en el arranque.

Solución 3:

En Ubuntu 11.10 que estoy usando, hay un script advenedizo en /etc/init/mounted-tmp.conf . El comienzo dice esto:

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

Puede leer con más detalles, sin embargo, en general /tmp se limpia cuando está montado o /usr esta montado. Esto sucede regularmente en el arranque, por lo que este /tmp la limpieza se ejecuta en cada arranque.

En /etc/default/rcS tienes TMPTIME set, que se usa en el script de inicio anterior para alimentar los dos find comandos en su extremo, básicamente controlando la eliminación de archivos en función de sus tiempos (modificados, cambiados, accedidos).

Solución 4:

Desde Fedora 18 en adelante, /tmp está montado en tmpfs (es decir, RAM) de forma predeterminada y, por lo tanto, se borra al apagar.

Este comportamiento se puede desactivar emitiendo systemctl mask tmp.mount y reinicie (y vuelva a habilitarlo emitiendo systemctl unmask tmp.mount y reiniciar), y luego /tmp se montará en el / sistema de archivos y puede ser controlado por /usr/lib/tmpfiles.d/tmp.conf configuración.

Consulte http://fedoraproject.org/wiki/Features/tmp-on-tmpfs y man tmpfiles.d para más detalles sobre cada caso.

Solución 5:

En RHEL 6.2, tmpwatch elimina los archivos en /tmp si no se ha accedido a ellos en 10 días.

El archivo /etc/cron.daily/tmpwatch define la forma en que se llama a 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

Los argumentos -x son archivos que deben excluirse. El penúltimo argumento es el tiempo de espera después de la última vez que se accedió. El último argumento es el directorio a examinar.


Linux
  1. ¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

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

  3. ¿Cuándo usar /dev/random Vs /dev/urandom?

  4. Ubuntu 14.04 "¿no obtuvo un Uri de reproducción en el archivo de entrada:///*"?

  5. Cómo systemd-tmpfiles limpia /tmp/ o /var/tmp (reemplazo de tmpwatch) en CentOS/RHEL 7

Directorio tmp de Linux:todo lo que necesita saber

¿Mover /tmp a RAM?

Linux:¿/sbin/init no existe?

¿Cómo accedo a Postgres cuando recibo un error sobre /var/run/postgresql/.s.PGSQL.5432?

Cómo cambiar el valor predeterminado /tmp a /home/user/tmp

Diferencia y uso correcto de /tmp y /var/tmp