web-dev-qa-db-fra.com

Comment nettoyer / tmp?

rizhas@rizhas-laptop:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda7        67G   58G  5,2G  92% /
none            4,0K     0  4,0K   0% /sys/fs/cgroup
udev            1,5G   12K  1,5G   1% /dev
tmpfs           303M  1,2M  302M   1% /run
none            5,0M     0  5,0M   0% /run/lock
none            1,5G  348K  1,5G   1% /run/shm
none            100M   80K  100M   1% /run/user
overflow        1,0M  1,0M     0 100% /tmp
overflow        1,0M  1,0M     0 100% /tmp

Comment nettoyer /tmp?

65
Rizhas

/ tmp est supposé être nettoyé au redémarrage, mais si vous ne redémarrez pas (ce qui est normal pour les serveurs), le nettoyage n'aura pas lieu

find /tmp -ctime +10 -exec rm -rf {} +

supprimera tous les fichiers et dossiers de plus de 10 jours. vous voudrez peut-être l'ajouter au journal quotidien.


METTRE À JOUR

Dans les commentaires ci-dessous, @sfussenegger recommande un format légèrement différent de cette commande, qui peut être mieux adapté à vos besoins et au système sur lequel vous travaillez.

Sudo find /tmp -type f -atime +10 -delete

Ici, la commande utilise Sudo pour s’assurer que tout est supprimé (ou vous pouvez l’exécuter en tant que root), en opérant sur des fichiers qui n’ont pas été accédés pendant plus de 10 jours et ne supprime que fichiers, pas des dossiers. Il utilise également -delete pour éviter de devoir exécuter la commande rm

102
Andrei R

Vous pouvez supposer que tout ce qui se trouve dans un répertoire tmp (/ tmp// usr/tmp, etc.) peut être supprimé. AVANT de commencer à supprimer, arrêtez tous les programmes et services que vous utilisez depuis/tmp/peut être utilisé par les programmes pour stocker temporairement les informations de cette session. Faites donc un Sudo service mysql stop et un Sudo service Apache2 stop si vous avez un mysql et/ou un Apache en cours d'exécution. Le nom des fichiers du répertoire/tmp/indique le plus souvent à quel programme ils appartiennent.

Donc, en ligne de commande ...

cd /tmp/
pwd
Sudo rm -r *

va vider le répertoire/tmp/et supprimer tous les fichiers et sous-répertoires. Veillez à taper correctement. La commande pwdin is not nécessaire, mais doit indiquer /tmp.

Si vous le souhaitez de manière interactive (vous devez donc confirmer la suppression):

cd /tmp/
Sudo rm -ri *

Il faut également noter qu’un redémarrage efface/tmp ainsi que le montre l’illustration suivante: Comment le répertoire/tmp est-il nettoyé? Donc, si/tmp/est plein de fichiers après un redémarrage, vous devez déterminer où se trouvent ces fichiers originaire de.

Je voudrais également préciser que 1 Mo pour/tmp ne représente pas beaucoup d’espace. Utilisez-vous MySQL? Voir https://unix.stackexchange.com/a/76058/10017 pour résoudre ce problème (merci @drc)

32
Rinzwind

Le programme tmpreaper peut être utilisé pour nettoyer / tmp périodiquement. Ce programme supprime tout ce qui n’a pas été consulté dans un laps de temps donné, généralement deux semaines. Pour que cela fonctionne correctement, l'option atimes doit être activée sur le système de fichiers sur lequel il est activé. Si vous utilisez un tmpfs, ce qui semble être le cas, tout devrait bien se passer.

Bien sûr, le redémarrage efface également / tmp, mais ce serait ennuyeux.

10
Simon Richter

Le répertoire /tmp signifie temporaire.

Ce répertoire stocke des données temporaires. Vous n'avez rien à supprimer, les données qu'il contient sont automatiquement supprimées après chaque redémarrage.

Toujours si vous voulez supprimer les données présentes, utilisez

Sudo rm -r /tmp/*

sa suppression ne posera aucun problème car il s'agit de fichiers temporaires.

7
Tarun

Soyez prudent avant d’exécuter une commande telle que rm -r ./*. Une fois que vous l'exécutez, il sera très difficile, voire impossible, de récupérer des données.

Tout sera supprimé. Assurez-vous que le répertoire que vous supprimez est correct.

Il existe un moyen plus sûr de gérer les choses.

# Sudo rm -r /tmp/*

Ainsi, lorsque vous exécutez cette commande par inadvertance à l'intérieur de votre shell, historyname__, les fichiers erronés ne seront pas supprimés (à moins que vous ne les conserviez dans /tmp).

4
user595510

Le répertoire /tmp a été effacé par défaut à chaque démarrage, car TMPTIME est 0 par défaut.

2
Avinash Raj

Si votre montage “/ tmp” sur un système de fichiers Linux est monté en débordement (souvent de 1 Mo), cela est probablement dû au fait que vous n'avez pas spécifié “/ tmp” comme étant sa propre partition et que votre système de fichiers racine s'est rempli et que “/ tmp” a été ajouté. remonté comme un repli. Pour résoudre ce problème après avoir libéré de l’espace, démontez simplement la solution de secours et remettez-la en place à son point d'origine:

Sudo umount overflow

si l'appareil est occupé, utilisez

Sudo umount -l overflow
1
ck reddy