Question Quand / tmp est-il effacé?


Je commence à mettre divers fichiers dans /tmp, et je me suis interrogé sur les règles pour les supprimer?

J'imagine que c'est différent pour différentes distributions et je m'intéresse particulièrement aux versions de bureau Ubuntu et Fedora.

Mais une bonne façon générale de découvrir serait une bonne chose.

Mieux encore, ce serait un bon moyen général de le contrôler! (Quelque chose comme «tous les jours à 3 heures du matin, supprimez tout /tmp fichiers de plus de 60 jours, mais n'effacez pas le répertoire au redémarrage ')


117
2018-04-06 15:09


origine




Réponses:


Cela dépend de votre distribution. Sur certains systèmes, il est supprimé uniquement au démarrage, tandis que d’autres utilisent des tâches cron pour supprimer des éléments plus anciens que n heures.

  • Sur les 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, il était /etc/cron.daily/tmpwatch ; RHEL7 et RedHat-like avec systemd, il est configuré dans /usr/lib/tmpfiles.d/tmp.conf, appelé par systemd-tmpfiles-clean.service).
  • Sur Gentoo /etc/conf.d/bootmisc.

130
2018-04-06 15:12



Et peu importe le moment où cela se produit, le seul moment sûr est généralement au démarrage, juste après le montage, car les processus en cours peuvent avoir des fichiers verrouillés à cet endroit et ceux-ci ne doivent pas être supprimés. - adaptr
Il existe également des packages disponibles qui peuvent les supprimer périodiquement. - Samuel Edwin Ward
Sur les systèmes de type RedHat avec systemd (centos7 / rhel7), il est configuré dans /usr/lib/tmpfiles.d/tmp.conf. C'est appelé par la cible de systemd systemd-tmpfiles-clean.service. - Franklin Piat
Sur l’ancienne Debian, vous pouvez envisager tmpreaper paquet, c'est la version forkée de tmpwatch. - Věroš K.


Sur CentOS (et je suppose Fedora), il existe un travail dans /etc/cron.daily appelé tmpwatch. Cela fonctionne /usr/sbin/tmpwatch, qui supprimera les fichiers qui n’ont pas été consultés dans le nombre d’heures spécifié, c’est-à-dire que le comportement par défaut consiste à examiner atime pour que le fichier évalue s’il a été utilisé récemment.

http://linux.die.net/man/8/tmpwatch

Les 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.


23
2018-04-06 16:01



Je n'ai pas ceci sur CentOS 7.4. - Kevin Lemaire
@KevinLemaire La fonctionnalité a été déplacée dans un service systemd. lists.centos.org/pipermail/centos/2014-Octobre/147155.html - cjc


Sur Ubuntu 11.10 que j'utilise, il y a un parvenu script dans /etc/init/mounted-tmp.conf. Le début de celui-ci 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 de détails, mais en général /tmp est nettoyé quand il est monté ou /usr est monté. Cela se produit régulièrement au démarrage, donc cela /tmp le nettoyage s'exécute à chaque démarrage.

Dans /etc/default/rcS tu as TMPTIME set, qui est utilisé dans le script init ci-dessus pour alimenter les deux find commandes à la fin - contrôlant essentiellement la suppression de fichiers en fonction de leurs temps (modifiés, modifiés, consultés).


12
2018-04-06 15:31





Sous RHEL 6.2, les fichiers de / tmp sont supprimés par tmpwatch s’ils n’ont pas été consultés depuis 10 jours.

Le fichier /etc/cron.daily/tmpwatch définit la manière 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. Le deuxième à dernier argument est le délai d'attente après le dernier accès. Le dernier argument est le répertoire à examiner.


4
2018-05-29 21:31





À partir de Fedora 18, /tmp est monté sur tmpfs (c’est-à-dire RAM) par défaut, et donc effacé lors de 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émarrez), puis /tmp sera monté sur le / système de fichiers et peut être contrôlé par /usr/lib/tmpfiles.d/tmp.conf réglages.

Voir http://fedoraproject.org/wiki/Features/tmp-on-tmpfs et man tmpfiles.d pour plus de détails sur chaque cas.


4
2018-01-10 14:15





Sous openSUSE 13.2, le comportement d'effacement pourrait être contrôlé avec la variable suivante dans sysconfig.

  • MAX_DAYS_IN_TMP
  • MAX_DAYS_IN_LONG_TMP
  • TMP_DIRS_TO_CLEAR
  • LONG_TMP_DIRS_TO_CLEAR
  • OWNER_TO_KEEP_IN_TMP
  • CLEAR_TMP_DIRS_AT_BOOTUP

Vous pouvez modifier ces variables en (vous pouvez également y trouver l'utilisation de chaque variable)

  1. Modifier le /etc/sysconfig/cron fichier manuellement en ligne de commande.
  2. Ouvrez Yast et naviguez dans Système -> / etc / sysconfig Editor -> Système -> Cron

3
2017-11-15 13:45





Mieux encore, ce serait un bon moyen général de le contrôler! (Quelque chose comme "tous les jours à 3 heures du matin, supprimez tous les fichiers / tmp antérieurs à 60 jours, mais n'effacez pas le répertoire au redémarrage")

Les fichiers triés-temporaires que vous ne voulez pas effacer au démarrage vont dans / var / tmp

C'est pour ça :-)


2
2018-04-07 05:01