GNU/Linux >> Tutoriales Linux >  >> Cent OS

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

En CentOS/RHEL 7, tmpfiles limpia /tmp o /var/tmp eliminando archivos no utilizados. Esta función se llamó “tmpwatch ” en CentOS/RHEL 6 que es invocado por crond, sin embargo, ahora lo realiza el temporizador de systemd en CentOS/RHEL 7.

Actualmente, las funciones detalladas de tmpfiles se describen en los archivos de configuración:

/usr/lib/systemd/system/systemd-tmpfiles-clean.timer
/usr/lib/systemd/system/systemd-tmpfiles-clean.service
/usr/lib/tmpfiles.d/tmp.conf

En resumen, las funciones disponibles son:

  • eliminación de archivos/directorios en /tmp sin acceso durante más de 10 días (definido en tmp.conf )
  • eliminar archivos/directorios en /var/tmp sin acceso durante más de 30 días (definido en tmp.conf )
  • hay varios archivos que no se eliminarán (definidos en tmp.conf)
  • el comando de eliminación es “/usr/bin/systemd-tmpfiles –clean “(definido en systemd-tmpfiles-clean.service )

sin acceso ” se decide comprobando todo atime /mtime /ctime del archivo/directorio. Por lo tanto, en caso de que uno de atime/mtime/ctime de un archivo en /tmp/ tenga más de 10 días, el archivo no se eliminará. Si un archivo/directorio en /tmp/ no es eliminado por tmpfiles incluso si parece que tiene más de 10 días, la razón puede verificarse ejecutando un comando con opciones de depuración como las siguientes manualmente:

# SYSTEMD_LOG_TARGET=console SYSTEMD_LOG_LEVEL=debug /usr/bin/systemd-tmpfiles --clean

Por ejemplo, a continuación se indica que un directorio "/tmp/latest" no se puede eliminar debido a su hora.

# SYSTEMD_LOG_TARGET=console SYSTEMD_LOG_LEVEL=debug /usr/bin/systemd-tmpfiles --clean 2>&1 | grep latest
Directory "/tmp/latest": access time Wed 2017-12-06 16:56:28.771577 IST is too new

Archivos de configuración de muestra

A continuación se encuentran los 3 archivos de configuración de muestra (sin editar) con sus configuraciones predeterminadas.

# cat /usr/lib/systemd/system/systemd-tmpfiles-clean.timer
[Unit]
Description=Daily Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)

[Timer]
OnBootSec=15min
OnUnitActiveSec=1d
# cat /usr/lib/tmpfiles.d/tmp.conf
# Clear tmp directories separately, to make them easier to override
v /tmp 1777 root root 10d
v /var/tmp 1777 root root 30d

# Exclude namespace mountpoints created with PrivateTmp=yes
x /tmp/systemd-private-%b-*
X /tmp/systemd-private-%b-*/tmp
x /var/tmp/systemd-private-%b-*
X /var/tmp/systemd-private-%b-*/tmp
# cat /usr/lib/systemd/system/systemd-tmpfiles-clean.service
[Unit]
Description=Cleanup of Temporary Directories
Documentation=man:tmpfiles.d(5) man:systemd-tmpfiles(8)
DefaultDependencies=no
Conflicts=shutdown.target
After=systemd-readahead-collect.service systemd-readahead-replay.service local-fs.target time-sync.target
Before=shutdown.target

[Service]
Type=oneshot
ExecStart=/usr/bin/systemd-tmpfiles --clean
IOSchedulingClass=idle


Cent OS
  1. Kubuntu muestra un error al iniciar sesión (file:///usr/share/sddm//themes/breeze/main.qml:no such file or directory)?

  2. Cómo se eliminan automáticamente los archivos/directorios en /tmp en CentOS/RHEL 5,6

  3. CentOS/RHEL:el punto de montaje /tmp no se monta automáticamente cuando se agrega en /etc/fstab

  4. CentOS / RHEL:Cómo rotar el archivo /var/log/wtmp y /var/log/btmp usando logrotate

  5. ¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

Django static_root en /var/www/... - sin permisos para recopilar estática

¿Cómo saber desde qué carpeta se está ejecutando un proceso?

unix:///var/run/supervisor.sock no hay tal archivo

¿Por qué poner otras cosas que no sean /home en una partición separada?

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

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