Pregunta ¿Cuándo se borra / tmp?


Estoy tomando para poner varios archivos en /tmp, y me preguntaba acerca de las reglas para eliminarlos?

Estoy imaginando que es diferente para diferentes distribuciones, y estoy particularmente interesado en las versiones de escritorio de Ubuntu y Fedora.

Pero una buena forma general de descubrir sería una gran cosa.

¡Aún mejor sería una buena forma general de controlarlo! (Algo así como 'todos los días a las 3 de la mañana, elimine cualquier /tmp archivos anteriores a 60 días, pero no borre el directorio al reiniciar ')


117
2018-04-06 15:09


origen




Respuestas:


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

  • En sistemas similares a Debian: en el arranque (las reglas se definen en /etc/default/rcS).
  • En sistemas similares a RedHat: por edad (RHEL6 era /etc/cron.daily/tmpwatch ; RHEL7 y RedHat-como con systemd se configura en /usr/lib/tmpfiles.d/tmp.conf, llamado por systemd-tmpfiles-clean.service).
  • En gentoo /etc/conf.d/bootmisc.

130
2018-04-06 15:12



Y independientemente de cuándo suceda esto, el único momento seguro es generalmente el arranque, justo después de montarlo, ya que los procesos en ejecución pueden tener archivos bloqueados allí, y estos no deben eliminarse. - adaptr
También hay paquetes disponibles que pueden eliminarse periódicamente. - Samuel Edwin Ward
En sistemas similares a RedHat con systemd (centos7 / rhel7), se configura en /usr/lib/tmpfiles.d/tmp.conf. Se llama por objetivo de systemd. systemd-tmpfiles-clean.service. - Franklin Piat
En el legado Debian, puedes considerar tmpreaper paquete, es versión bifurcada de tmpwatch. - Věroš K.


En CentOS (y supongo que Fedora), hay un trabajo en /etc/cron.daily llamado tmpwatch. Esto corre /usr/sbin/tmpwatch, que eliminará los archivos a los que no se haya accedido en el número especificado de horas, es decir, el comportamiento predeterminado es examinar el atime para el archivo para evaluar 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 aclarará en el arranque.


23
2018-04-06 16:01



No tengo esto en CentOS 7.4. - Kevin Lemaire
@KevinLemaire La funcionalidad se movió a un servicio systemd. lists.centos.org/pipermail/centos/2014-October/147155.html - cjc


En Ubuntu 11.10 que estoy usando, hay un advenedizo guión en /etc/init/mounted-tmp.conf. El comienzo de esto 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)

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

En /etc/default/rcS tienes TMPTIME conjunto, que se utiliza en el script de inicio anterior para alimentar a los dos find Comandos al final: básicamente controlan la eliminación de archivos en función de sus tiempos (modificados, modificados, accedidos).


12
2018-04-06 15:31





En RHEL 6.2, los archivos en / tmp son eliminados por tmpwatch si no han sido accedidos en 10 días.

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

Los argumentos -x son archivos a excluir. El segundo al último argumento es el tiempo para esperar después de la última vez que se accedió. El último argumento es el directorio a examinar.


4
2018-05-29 21:31





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 puede ser deshabilitado emitiendo systemctl mask tmp.mount y reiniciar (y volver a habilitar mediante la emisión systemctl unmask tmp.mount y reiniciar), y luego /tmp será montado en el / sistema de archivos y puede ser controlado por /usr/lib/tmpfiles.d/tmp.conf ajustes

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


4
2018-01-10 14:15





En openSUSE 13.2, el comportamiento de borrado podría controlarse con la siguiente variable en sysconfig.

  • MAX_DAYS_IN_TMP
  • MAX_DAYS_IN_LONG_TMP
  • TMP_DIRS_TO_CLEAR
  • LONG_TMP_DIRS_TO_CLEAR
  • OWNER_TO_KEEP_IN_TMP
  • CLEAR_TMP_DIRS_AT_BOOTUP

Podría modificar estas variables mediante (el uso de cada variable también se puede encontrar allí)

  1. Editar el /etc/sysconfig/cron archivo manualmente en la línea de comandos.
  2. Abra Yast y navegue en Sistema -> / etc / sysconfig Editor -> Sistema -> Cron

3
2017-11-15 13:45





¡Aún mejor sería una buena forma general de controlarlo! (Algo así como 'todos los días a las 3 de la mañana, elimine cualquier archivo / tmp con más de 60 días, pero no borre el directorio al reiniciar')

Los archivos Sorta-tempy que no desea borrar en el arranque van en / var / tmp

Para eso es :-)


2
2018-04-07 05:01