Si les fichiers/répertoires dans /tmp n'ont pas été consultés pendant une longue période, ils peuvent être supprimés automatiquement. "tmpwatch ” nettoie le contenu de /tmp ou d'autres répertoires temporaires comme /var/tmp. Le nettoyage des fichiers non consultés dans /tmp est une fonction par défaut du package "tmpwatch", qui fournit une tâche cron /etc/cron.daily/tmpwatch . Il s'agit d'un script shell lancé quotidiennement par crond, qui vérifie /tmp, /var/tmp et plusieurs répertoires dans /var/ et supprime les fichiers/répertoires qui n'ont pas été consultés depuis longtemps.
Par exemple, un exemple de fichier de configuration /etc/cron.daily/tmpwatch sur CentOS/RHEL 5 ressemble à ceci :
# cat /etc/cron.daily/tmpwatch 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_*' 240 /tmp /usr/sbin/tmpwatch "$flags" 720 /var/tmp for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do if [ -d "$d" ]; then /usr/sbin/tmpwatch "$flags" -f 720 "$d" fi done
La configuration ci-dessus supprimera les fichiers/répertoires qui n'ont pas été consultés pendant 240 heures (10 jours pour /tmp) ou 720 heures (30 jours pour /var/tmp).
Un exemple de fichier de configuration /etc/cron.daily/tmpwatch sur CentOS/RHEL 6 ressemble à ceci :
# cat /etc/cron.daily/tmpwatch 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_*' -X '/tmp/.hdb*lock' -X '/tmp/.sapstartsrv*.log' \ -X '/tmp/pymp-*' 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
La configuration ci-dessus qui supprimera les fichiers/répertoires qui n'ont pas été consultés pendant 10 (/tmp) ou 30 (/var/tmp) jours.
Dans la plupart des cas, la suppression de fichiers par tmpwatch peut être ignorée en toute sécurité, car les fichiers inutilisés doivent être supprimés de /tmp pour libérer de l'espace dans le système de fichiers afin que le système de fichiers contenant /tmp ne se remplisse pas avec le temps.
Cependant, si vous avez fortement besoin de désactiver cette fonction pour une raison quelconque, malgré l'importance de tmpwatch pour s'assurer que /tmp ne provoque pas le remplissage d'un système de fichiers, vous pouvez utiliser l'une des méthodes décrites ci-dessous.
Méthode 1 - Suppression du package tmpwatch
Le moyen le plus simple consiste à supprimer le package tmpwatch lui-même :
# rpm -e tmpwatch
ou
# yum remove tmpwatch
Méthode 2 - Désactiver l'entrée cron tmpwatch
Dans certains cas, vous ne pourrez peut-être pas supprimer le package tmpwatch en raison des dépendances dont il dispose. Vous obtiendrez une erreur ci-dessous :
# rpm -e tmpwatch LANG=C rpm -e tmpwatch error: Failed dependencies: tmpwatch is needed by (installed) tetex-3.0-33.15.el5_8.1.x86_64 tmpwatch is needed by (installed) cups-1.3.7-32.el5_11.x86_64
Alternativement, vous pouvez également déplacer ou supprimer le fichier /etc/cron.daily/tmpwatch chargé de programmer la suppression du fichier de /var/tmp et /tmp/directories.
# mv /etc/cron.daily/tmpwatch /other/location/tmpwatch.bkp
ou
# rm /etc/cron.daily/tmpwatch