¿Cómo se /tmp
limpia el directorio? ¿Es automático? Si es así, ¿con qué frecuencia se limpia?
filesystem
tmp
Olivier Lalonde
fuente
fuente
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
en / etc / fstab.Respuestas:
¡Nota! Esta respuesta está desactualizada desde al menos ubuntu 14.04. Vea otras respuestas para la situación actual y si resultan correctas, entonces vótelas furiosamente. También publique un comentario para que pueda poner un enlace aquí a la respuesta correcta actual.
Para 14.04 ver https://askubuntu.com/a/759048/1366
Para 16.10 ver https://askubuntu.com/a/857154/453746
Antigua respuesta de 2011:
La limpieza de
/tmp
se realiza mediante el script inicial/etc/init/mounted-tmp.conf
. La secuencia de comandos se ejecuta desde el inicio cada vez que/tmp
se monta. Prácticamente eso significa en cada arranque.El script hace aproximadamente lo siguiente: si un archivo
/tmp
es anterior a$TMPTIME
días, se eliminará.El valor predeterminado de
$TMPTIME
es 0, lo que significa que todos los archivos y directorios/tmp
se eliminan.$TMPTIME
es una variable de entorno definida en/etc/default/rcS
.fuente
El directorio se borra de manera predeterminada en cada arranque, porque
TMPTIME
es 0 de forma predeterminada.Aquí puede cambiar la hora en el siguiente archivo:
TMPTIME
dice con qué frecuencia el directorio tmp debería eliminarse en díasfuente
tmpreaper
una oportunidad.tmpwatch
debería ser una herramienta adecuada.Si bien la
/tmp
carpeta no es un lugar para almacenar archivos a largo plazo, ocasionalmente desea mantener las cosas un poco más tiempo que la próxima vez que reinicie , que es el valor predeterminado en los sistemas Ubuntu. Sé una o dos veces que descargué algo/tmp
durante las pruebas, lo reinicié después de hacer cambios y luego perdí los datos originales nuevamente. Esto se puede cambiar si desea mantener sus/tmp
archivos un poco más.Cambiar la
/tmp
frecuencia de limpiezaLa configuración predeterminada que le indica a su sistema que se borre
/tmp
al reiniciar se mantiene en el/etc/default/rcS
archivo. El valor que veremos esTMPTIME
.El valor actual de
TMPTIME=0
dice eliminar archivos al reiniciar a pesar de la antigüedad del archivo. Cambiar este valor a un número diferente (positivo) cambiará la cantidad de días que un archivo puede sobrevivir/tmp
.Esta configuración permitiría que los archivos permanezcan
/tmp
hasta que tengan una semana de antigüedad y luego los elimine en el próximo reinicio. Un número negativo (TMPTIME=-1
) le dice al sistema que nunca elimine nada/tmp
. Probablemente no sea algo que desee, pero está disponible.fuente
/etc/init/mounted-temp.conf
, pero tiene la líneastart on mounted MOUNTPOINT=/tmp
que me hace pensar que no es aplicable./var/tmp
lugar de/tmp
.Estoy comprobando esto en Ubuntu 16.10. Puedo certificar que la edición / etc / default / rcS ya no tiene ningún efecto y que los archivos en tmp se borran al reiniciar sin importar lo que coloque en ese archivo. Como otros mencionan, tmpreaper ya no se usa.
Creo que la respuesta correcta es que Ubuntu 16.10 tiene una nueva configuración. Hay una carpeta /etc/tmpfiles.d, documentada en la página de manual "tmpfiles.d". En esa carpeta, se debe colocar un archivo de configuración para controlar si se debe borrar / tmp. Esto es lo que estoy haciendo para evitar que los reinicios borren archivos en / tmp a menos que tengan 20 días de antigüedad:
Reemplace "20d" por "-" si nunca desea eliminar archivos. Este es mi mejor esfuerzo, esa página de manual es casi impenetrable con detalles.
La ventaja de la nueva configuración es que un limpiador de archivos aún puede ejecutarse incluso si el sistema no se reinicia (como en el caso de un servidor siempre en funcionamiento). Esa es una gran ventaja, creo.
fuente
man tmpfiles.d
d /tmp/ - - - 20d
systemctl start systemd-tmpfiles-clean
En Ubuntu 14.04 esto se hace mediante
tmpreaper
, que cron llama diariamente (desde/etc/cron.daily
). El programa se puede configurar a través de/etc/default/rcS
y/etc/tmpreaper.conf
.fuente
Antes del 14.04:
Se limpia cada vez que reinicia.
fuente
tmpreaper
.En un
systemd
Ubuntu (15.10 y más reciente), esto lo hace systemd, usando elsystemd-tmpfiles-clean
servicio y el temporizador:Y
Entonces se
systemd-tmpfiles-clean
ejecuta en apagado, y una vez al día de lo contrario. Los archivos que limpia se pueden extender utilizando los/etc/tmpfiles.d
mencionados en otra respuesta .Puede cambiar el comportamiento del temporizador usando
systemctl edit systemd-tmpfiles-clean.timer
, y usando variasTimer
opciones de configuración de systemd (verman 5 systemd.timer
).fuente
/tmp
aún no se limpió. y necesito que lo limpien incluso el inicio manualsudo systemctl start systemd-tmpfiles-clean
no funciona. Alguna idea de por qué?En uno de nuestros servidores que ejecutan Ubuntu, tenemos un script para eliminar archivos en / tmp y se ejecuta todas las noches.
El guión es:
Simplemente guarde el contenido anterior en un archivo chmod 775 el archivo y cree una entrada cron para ejecutarlo. Dado que este es un servidor web, no queremos reiniciarlo por razones obvias.
fuente
ln -s /usr /tmp/kaboom
o inclusoln -s /* /tmp/
...