Solution 1 :
Cela dépend de votre distribution. Sur certains systèmes, il n'est supprimé qu'au démarrage, d'autres ont des tâches cron en cours d'exécution supprimant les éléments antérieurs à n heures.
- Sur Ubuntu 14 :utilisation de
tmpreaper
qui est appelé par/etc/cron.daily
, configuré via/etc/default/rcS
et/etc/tmpreaper.conf
. (Crédits à cette réponse). - Sur Ubuntu 16 :utilisation de
tmpfiles.d
. (Crédits à cette réponse). - Sur les autres systèmes de type Debian :au démarrage (les règles sont définies dans
/etc/default/rcS
). - Sur les systèmes de type RedHat :par âge (RHEL6, c'était
/etc/cron.daily/tmpwatch
; RHEL7/RHEL8 et RedHat-like avec systemd, il est configuré en/usr/lib/tmpfiles.d/tmp.conf
, appelé parsystemd-tmpfiles-clean.service
). - Sur Gentoo
/etc/conf.d/bootmisc
.
Solution 2 :
Sur CentOS (et je suppose que Fedora), il y a un travail dans /etc/cron.daily appelé tmpwatch
. Cela exécute /usr/sbin/tmpwatch
, qui supprimera les fichiers qui n'ont pas été consultés pendant le nombre d'heures spécifié, c'est-à-dire que le comportement par défaut consiste à examiner le atime
pour que le fichier évalue s'il a été utilisé récemment.
http://linux.die.net/man/8/tmpwatch
D'autres distributions (et installations) peuvent avoir /tmp monté en tant que tmpfs, qui est un système de fichiers en mémoire. Cela sera effacé au démarrage.
Solution 3 :
Sur Ubuntu 11.10 que j'utilise, il y a un script upstart dans /etc/init/mounted-tmp.conf
. Le début dit ceci :
# 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)
Vous pouvez lire plus en détail, mais en général /tmp
est nettoyé lorsqu'il est monté ou /usr
est monté. Cela se produit régulièrement au démarrage, donc ce /tmp
le nettoyage s'exécute à chaque démarrage.
En /etc/default/rcS
vous avez TMPTIME
set, qui est utilisé dans le script d'initialisation ci-dessus pour alimenter les deux find
commandes à sa fin - contrôlant essentiellement la suppression des fichiers en fonction de leur heure (modifié, changé, accédé).
Solution 4 :
À partir de Fedora 18, /tmp
est monté sur tmpfs
(c'est-à-dire RAM) par défaut, et donc effacé à la mise hors tension.
Ce comportement peut être désactivé en émettant systemctl mask tmp.mount
et redémarrez (et réactivé en émettant systemctl unmask tmp.mount
et redémarrer), puis /tmp
sera monté sur le /
système de fichiers et peut être contrôlé par /usr/lib/tmpfiles.d/tmp.conf
paramètres.
Voir http://fedoraproject.org/wiki/Features/tmp-on-tmpfs et man tmpfiles.d
pour plus de détails sur chaque cas.
Solution 5 :
Sur RHEL 6.2, les fichiers dans /tmp sont supprimés par tmpwatch s'ils n'ont pas été consultés pendant 10 jours.
Le fichier /etc/cron.daily/tmpwatch définit la façon dont tmpwatch est appelé.
#! /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
Les arguments -x sont des fichiers à exclure. L'avant-dernier argument est le temps d'attente après le dernier temps d'accès. Le dernier argument est le répertoire à examiner.