Eliminación de archivos temporales automáticamente con RedHat

El equipo de SAP me preguntaba si había alguna tarea en cron que hiciese limpieza de los archivos temporales de SAP. Resulta, que cada día, a las 3:00 se caía la instancia de SAP debido a que se eliminaba un fichero de bloqueo:

<style> #noScript .hideScript { display:none } </style>  
shared memory lock ‘/tmp/.trex_<sid>_<instance>_lock’was deleted
es el error del log y en el tmp no hay ningún fichero con ese nombre (.trex_TRX_00_lock )

Investigando un poco, RedHat configura por defecto un job en cron que hace limpieza de ficheros temporales. En concreto es este:

[root@lctntrx0 cron.daily]# pwd
/etc/cron.daily
[root@lctntrx0 cron.daily]# cat 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
/usr/sbin/tmpwatch «$flags» 30d /var/tmp
for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do
if [ -d «$d» ]; then
/usr/sbin/tmpwatch «$flags» -f 30d «$d»
fi
done
[root@lctntrx0 cron.daily]#

 

Tal y como podemos comprobar en el man del tmpwatch, este ejecutable se encarga de hacer limpieza de ficheros temporales que no han sido accedidos desde hace un periodo determinado de tiempo.

Moraleja: Los ficheros de aplicación nunca deben utilizar el filesystem /tmp.

COMPÁRTEME

Deja un comentario