Comment le /tmp
répertoire est-il nettoyé? Est-ce automatique? Si oui, à quelle fréquence est-il nettoyé?
filesystem
tmp
Olivier Lalonde
la source
la source
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
dans / etc / fstab.Réponses:
Remarque! Cette réponse est obsolète depuis au moins Ubuntu 14.04. Voir les autres réponses pour la situation actuelle et si elles s'avèrent correctes alors les révulser furieusement. Publiez également un commentaire afin que je puisse mettre un lien ici vers la réponse correcte actuelle.
Pour 14.04 voir https://askubuntu.com/a/759048/1366
Pour 16.10, voir https://askubuntu.com/a/857154/453746
Ancienne réponse de 2011:
Le nettoyage de
/tmp
est fait par le script upstart/etc/init/mounted-tmp.conf
. Le script est exécuté par chaque fois que upstart/tmp
est monté. Pratiquement cela signifie à chaque démarrage.Le script effectue à peu près ce qui suit: si un fichier
/tmp
est plus vieux que plusieurs$TMPTIME
jours, il sera supprimé.La valeur par défaut
$TMPTIME
est 0, ce qui signifie que tous les fichiers et répertoires/tmp
sont supprimés.$TMPTIME
est une variable d'environnement définie dans/etc/default/rcS
.la source
Le répertoire est effacé par défaut à chaque démarrage car
TMPTIME
0 par défaut.Ici vous pouvez changer l'heure dans le fichier suivant:
TMPTIME
indique à quelle fréquence le répertoire tmp doit être effacé en quelques joursla source
tmpreaper
une chance.tmpwatch
devrait être un outil approprié.Bien que le
/tmp
dossier ne soit pas un emplacement pour stocker des fichiers à long terme, vous souhaitez parfois conserver les choses un peu plus longtemps que lors du prochain redémarrage , ce qui est la valeur par défaut sur les systèmes Ubuntu. Je connais un ou deux fois , je l' ai téléchargé quelque chose à/tmp
pendant le test, redémarré après avoir modifié puis perdu à nouveau les données d' origine. Cela peut être changé si vous souhaitez conserver vos/tmp
fichiers un peu plus longtemps.Changer la
/tmp
fréquence de nettoyageLe paramètre par défaut qui demande à votre système d’effacer
/tmp
au redémarrage est conservé dans le/etc/default/rcS
fichier. La valeur que nous allons examiner estTMPTIME
.La valeur actuelle de
TMPTIME=0
dit supprimer les fichiers au redémarrage malgré l’âge du fichier. Changer cette valeur en un nombre différent (positif) changera le nombre de jours pendant lesquels un fichier peut survivre/tmp
.Ce paramètre permettrait aux fichiers de rester
/tmp
jusqu'à la semaine, puis de les supprimer au prochain redémarrage. Un nombre négatif (TMPTIME=-1
) indique au système de ne jamais supprimer quoi que ce soit/tmp
. Ce n'est probablement pas quelque chose que vous voulez, mais qui est disponible.la source
/etc/init/mounted-temp.conf
, mais il a la lignestart on mounted MOUNTPOINT=/tmp
qui me fait penser que c'est non applicable./var/tmp
place de/tmp
.Je vérifie cela sur Ubuntu 16.10. Je peux certifier que la modification de / etc / default / rcS n’a plus aucun effet et que les fichiers de tmp sont effacés par le redémarrage, quoi que vous placiez dans ce fichier. Comme d'autres l'ont mentionné, tmpreaper n'est plus utilisé.
Je pense que la bonne réponse est que Ubuntu 16.10 a une nouvelle configuration. Il existe un dossier /etc/tmpfiles.d, documenté dans la page de manuel "tmpfiles.d". Dans ce dossier, vous devez placer un fichier de configuration pour contrôler si le fichier / tmp doit être effacé. C’est ce que je suis en train de faire pour empêcher les redémarrages d’effacer les fichiers de / tmp à moins qu’ils n’aient 20 jours:
Remplacez "20d" par "-" si vous ne voulez jamais que des fichiers soient supprimés. Ceci est mon meilleur effort, cette page de manuel est presque impénétrable avec les détails.
L'avantage de la nouvelle configuration réside dans le fait qu'un nettoyeur de fichiers peut toujours fonctionner même si le système n'est pas redémarré (comme dans le cas d'un serveur toujours actif). C'est un gros plus, je pense.
la source
man tmpfiles.d
d /tmp/ - - - 20d
systemctl start systemd-tmpfiles-clean
Dans Ubuntu 14.04, cela est fait par
tmpreaper
, ce qui est appelé quotidiennement par cron (de/etc/cron.daily
). Le programme peut être configuré via/etc/default/rcS
et/etc/tmpreaper.conf
.la source
Avant 14.04:
Il est nettoyé chaque fois que vous redémarrez.
la source
tmpreaper
.Dans
systemd
Ubuntu (15.10 et plus récent), cette opération est effectuée par systemd, à l'aide dusystemd-tmpfiles-clean
service et du temporisateur:Et
Donc,
systemd-tmpfiles-clean
fonctionne à l'arrêt, et une fois par jour sinon. Les fichiers qu'il nettoie peuvent être étendus à l'aide/etc/tmpfiles.d
d' une autre réponse .Vous pouvez modifier le comportement du minuteur lui-même en utilisant
systemctl edit systemd-tmpfiles-clean.timer
et en utilisant diversesTimer
options de configuration de systemd (voirman 5 systemd.timer
).la source
/tmp
toujours pas nettoyé. et j'en ai besoin pour être nettoyé. Même le démarrage manuelsudo systemctl start systemd-tmpfiles-clean
ne fait pas l'affaire. Des idées pourquoi?Sur l'un de nos serveurs exécutant Ubuntu, nous avons un script pour supprimer des fichiers dans / tmp qui s'exécute tous les soirs.
Le script est:
Enregistrez simplement le contenu ci-dessus dans un fichier chmod 775 et créez une entrée cron pour l'exécuter. Comme il s’agit d’un serveur Web, nous ne souhaitons pas le redémarrer pour des raisons évidentes.
la source
ln -s /usr /tmp/kaboom
ou même deln -s /* /tmp/
...