Comment le répertoire /tmp
est-il nettoyé? Est-ce automatique? Si oui, à quelle fréquence est-il nettoyé?
Ce n'est plus vrai pour 14.04 (le script n'existe plus).
Comment le répertoire /tmp
est-il nettoyé? Est-ce automatique? Si oui, à quelle fréquence est-il nettoyé?
Note! Cette réponse est obsolète depuis au moins ubuntu 14.04. Voir d'autres réponses pour la situation actuelle et si elles se révèlent correctes, votez-les furieusement. Postez également un commentaire afin que je puisse mettre un lien vers la réponse correcte actuelle ici.
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 effectué par le script upstart /etc/init/mounted-tmp.conf
. Le script est exécuté par upstart à chaque fois que /tmp
est monté. Pratiquement, cela signifie à chaque démarrage.
Le script fait approximativement ce qui suit : si un fichier dans /tmp
est plus vieux que $TMPTIME
jours, il sera supprimé.
La valeur par défaut de $TMPTIME
est 0, ce qui signifie que tous les fichiers et répertoires dans /tmp
seront supprimés. $TMPTIME
est une variable d'environnement définie dans /etc/default/rcS
.
@Martin Schröder - le script existe sur mon système et c'est une installation propre de 14.04 et tmpreaper n'existe pas!
Je suis maintenant sous arch linux donc je ne peux pas vérifier. Désolé. S'il vous plaît, quelqu'un peut-il vérifier cela et commenter ou éditer ma réponse.
Effacer à chaque démarrage n'est pas idéal pour une machine qui n'est jamais redémarrée, comme un serveur. J'ai plus de 500 000 fichiers occupant 5 Go d'espace dans mon /tmp car mon serveur a une durée de fonctionnement de 378 jours. Je suis réticent à le redémarrer, simplement parce que la suppression de ces fichiers au redémarrage peut prendre des heures.
Alors que le dossier /tmp
n'est pas un endroit pour stocker des fichiers à long terme, parfois vous voulez conserver les choses un peu plus longtemps que la prochaine fois que vous redémarrez, ce qui est la valeur par défaut sur les systèmes Ubuntu. Il m'est arrivé une fois ou deux d'avoir téléchargé quelque chose dans /tmp
pendant les tests, redémarré après avoir apporté des modifications et ensuite perdu à nouveau les données originales. Cela peut être modifié si vous souhaitez conserver vos fichiers /tmp
un peu plus longtemps.
Changer la fréquence de nettoyage de /tmp
Le paramètre par défaut qui indique à votre système de vider /tmp
au redémarrage est contenu dans le fichier /etc/default/rcS
. La valeur que nous allons examiner est TMPTIME
.
La valeur actuelle de TMPTIME=0
indique de supprimer les fichiers au redémarrage quel que soit l'âge du fichier. Changer cette valeur pour un chiffre (positif) différent modifiera le nombre de jours pendant lesquels un fichier peut rester dans /tmp
.
TMPTIME=7
Ce paramètre permettrait aux fichiers de rester dans /tmp
jusqu'à une semaine, puis de les supprimer lors du prochain redémarrage. Un nombre négatif (TMPTIME=-1
) indique au système de ne jamais supprimer quoi que ce soit dans /tmp
. Ce n'est probablement pas ce que vous voulez, mais c'est une option disponible.
Bonne explication. Mais dans quel script se trouve la commande de nettoyage? J'ai vu /etc/init/mounted-temp.conf
, mais il contient la ligne start on mounted MOUNTPOINT=/tmp
qui me fait penser que ce n'est pas applicable.
Si vous ne voulez pas qu'un fichier soit supprimé automatiquement, placez-le dans /var/tmp
au lieu de /tmp
.
Il est également pratique de conserver les fichiers que vous ne voulez pas perdre (images vidéo rendues) lorsque votre machine plante, potentiellement en raison d'un manque de mémoire. Une meilleure solution serait bien sûr de résoudre le problème. :-)
Je vérifie ceci sur Ubuntu 16.10. Je peux certifier que l'édition de /etc/default/rcS n'a plus aucun effet et que les fichiers dans tmp sont effacés après chaque redémarrage, peu importe ce que vous mettez dans ce fichier. Comme d’autres l'ont mentionné, tmpreaper n'est plus utilisé.
Je pense que la bonne réponse est qu'Ubuntu 16.10 a une nouvelle configuration. Il y a un dossier /etc/tmpfiles.d, documenté dans la page de manuel "tmpfiles.d". Dans ce dossier, on doit placer un fichier de configuration pour contrôler si le /tmp doit être effacé. C'est ce que je fais pour empêcher les redémarrages d'effacer les fichiers dans /tmp sauf s'ils ont 20 jours :
#/etc/tmpfiles.d/tmp.conf
d /tmp 1777 root root 20d
Remplacez "20d" par "-" si vous ne voulez jamais que les fichiers soient supprimés. C'est mon meilleur effort, cette page de manuel est quasi imperméable avec ses détails.
L'avantage de la nouvelle configuration est qu'un nettoyeur de fichiers peut toujours s'exécuter même si le système n'est pas redémarré (comme dans le cas d'un serveur toujours allumé). C'est un grand plus, je pense.
J'ai découvert que vous pouvez conserver les autorisations de fichier d'origine et le propriétaire en utilisant des tirets : d /tmp/ - - - 20d
Aussi à noter: vous pouvez tester votre configuration en exécutant manuellement le travail de nettoyage: systemctl start systemd-tmpfiles-clean
Sur Ubuntu 14.04, cela est fait par tmpreaper
, qui est appelé quotidiennement par cron (depuis /etc/cron.daily
). Le programme peut être configuré via /etc/default/rcS
et /etc/tmpreaper.conf
.
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.
18 votes
Mes fichiers temporaires ne sont jamais écrits sur le disque. Ils sont écrits sur un disque RAM. J'ai mis
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
dans /etc/fstab.0 votes
Connexe: serverfault.com/questions/377348/when-does-tmp-get-cleared/…
0 votes
Voir Serverfault: Quand est-ce que /tmp est nettoyé ?