Estoy tomando para poner varios archivos en /tmp, y me preguntaba cuales son las reglas de la eliminación de ellos son?
Me estoy imaginando que es diferente para diferentes distribuciones, y estoy particularmente interesado en Ubuntu y Fedora versiones de escritorio.
Pero es un buen modo general de conocer sería una gran cosa.
Aún mejor sería una buena manera general de control! (Algo así como "todos los días a las 3 de la mañana, elimine los archivos temporales de más de 60 días, pero no borrar el directorio en el reinicio')
Respuestas
¿Demasiados anuncios?Eso depende de su distribución. En un sistema, se elimina sólo al arrancar, otros tienen funcionamiento cronjobs eliminar elementos mayores de n horas.
- En sistemas Debian: durante el arranque (las reglas se definen en
/etc/default/rcS
). - En sistemas RedHat: por edad (RHEL6 era
/etc/cron.daily/tmpwatch
; RHEL7 y RedHat-como con systemd está configurado en/usr/lib/tmpfiles.d/tmp.conf
, llamado porsystemd-tmpfiles-clean.service
). - En Gentoo
/etc/conf.d/bootmisc
.
En CentOS (y supongo Fedora), hay un trabajo en /etc/cron.diaria llamada" tmpwatch
. Este se ejecuta /usr/sbin/tmpwatch
, que va a eliminar archivos que no se ha accedido en el número especificado de horas, es decir, el comportamiento predeterminado es examinar la atime
para el archivo para evaluar si se ha usado recientemente.
http://linux.die.net/man/8/tmpwatch
Otras distribuciones (y de instalaciones) puede tener /tmp montado como tmpfs, que es una memoria de sistema de ficheros. Esto se despejaron en el arranque.
En Ubuntu 11.10 que estoy usando, hay un advenedizo secuencia de comandos en /etc/init/mounted-tmp.conf
. El inicio de 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)
Usted puede leer más detalles, sin embargo, en general, /tmp
se limpia cuando ya sea montado o /usr
está montado. Esto regularmente ocurre en el arranque, por lo que esta /tmp
de limpieza se ejecuta en cada inicio.
En /etc/default/rcS
tiene TMPTIME
, que es la utilizada en el anterior script de inicio para alimentar a los dos find
comandos en su extremo - básicamente el control de la eliminación de archivos basados en sus tiempos (modificado, cambiado, consultado).
En RHEL 6.2 se eliminan los archivos en/tmp por tmpwatch si ellos no se hayan utilizado en 10 días.
El archivo /etc/cron.daily/tmpwatch define la forma se llama 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
El x - argumentos son archivos debe ser excluido. El segundo al último argumento es el tiempo de espera después de que el último acceso a tiempo. El último argumento es el directorio para examinar.
A partir de Fedora 18, /tmp
está montado en tmpfs
(es decir, RAM) por defecto, y por lo tanto se borran al apagar.
Este comportamiento puede ser desactivada mediante la emisión de systemctl mask tmp.mount
y reiniciar (y volver a habilitar la emisión de systemctl unmask tmp.mount
y reiniciar) y, a continuación, /tmp
será montada en la /
sistema de archivos y puede ser controlado por /usr/lib/tmpfiles.d/tmp.conf
configuración.
Ver http://fedoraproject.org/wiki/Features/tmp-on-tmpfs y man tmpfiles.d
para más detalles sobre cada caso.