Comment nettoyer / tmp?

57
[email protected]:~$ 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 ?

    
posée Rizhas 21.11.2013 - 08:59
la source

7 réponses

84

/ tmp est censé être nettoyé au redémarrage, mais si vous ne redémarrez pas (ce qui est normal pour les serveurs), le nettoyage ne se fera pas

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 cron quotidien.

UPDATE

Dans les commentaires ci-dessous, @sfussenegger recommande un format légèrement différent de cette commande, 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 que vous pouvez l'exécuter en tant que root), en opérant sur des fichiers qui n'ont pas été accessibles depuis plus de 10 jours et uniquement supprime les fichiers, pas les dossiers . Il utilise également -delete pour éviter d'avoir à exécuter la commande rm

    
réponse donnée Andrei R 15.04.2015 - 01:29
la source
32

Vous pouvez supposer que tout élément contenu dans un répertoire tmp (/ tmp / / usr / tmp, etc.) peut être supprimé. AVANT de commencer la suppression, tous les programmes et services que vous utilisez depuis / tmp / peuvent être utilisés par les programmes pour stocker temporairement des informations pour cette session. Faites donc un sudo service mysql stop et sudo service apache2 stop si vous avez un mysql et / ou un apache en cours d'exécution. Le nom des fichiers dans le répertoire / tmp / donne la plupart du temps un indice sur le programme auquel ils appartiennent.

Donc, à partir de la ligne de commande ...

cd /tmp/
pwd
sudo rm -r *

videra le répertoire / tmp / et supprimera tous les fichiers et sous-répertoires. Veillez à taper correctement. La commande pwd in y est inutile mais devrait afficher /tmp .

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

cd /tmp/
sudo rm -ri *

Il convient également de noter qu’un redémarrage s’effacera / tmp, comme indiqué ici: Comment le répertoire / tmp est-il nettoyé? Donc, si / tmp / est plein de fichiers après un redémarrage, vous devez déterminer d'où proviennent ces fichiers.

Je voudrais également dire que 1 Mo pour / tmp n’a pas beaucoup d’espace. Utilisez-vous MySQL? Voir lien pour résoudre ce problème (merci @drc)

    
réponse donnée Rinzwind 21.11.2013 - 09:10
la source
9

Le programme tmpreaper peut être utilisé pour nettoyer / tmp régulièrement. Ce programme supprime tout ce qui n’a pas été accédé dans un délai donné, généralement deux semaines. Pour que cela fonctionne correctement, l'option atimes du système de fichiers doit être activée. Si vous utilisez un tmpfs , ce qui semble être le cas, alors ça devrait aller.

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

    
réponse donnée Simon Richter 21.11.2013 - 15:00
la source
7

Le répertoire /tmp signifie temporaire.

Ce répertoire stocke les données temporaires. Vous n'avez pas besoin de supprimer quoi que ce soit, les données qu'il contient sont automatiquement supprimées après chaque redémarrage.

Si vous souhaitez supprimer les données présentes, utilisez-les

sudo rm -r /tmp/*

la supprimer ne posera aucun problème car ce sont des fichiers temporaires.

    
réponse donnée Tarun 21.11.2013 - 09:11
la source
4

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

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

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

# sudo rm -r /tmp/*

Ainsi, lorsque vous exécuterez accidentellement cette commande depuis votre shell history , elle ne supprimera pas les mauvais fichiers (sauf si vous les conservez dans /tmp ).

    
réponse donnée Mark Yisri 25.01.2017 - 11:19
la source
2

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

    
réponse donnée Avinash Raj 21.11.2013 - 09:10
la source
1

Si votre montage "/ tmp" sur un système de fichiers linux est monté en tant que débordement (souvent de 1 Mo), cela est probablement dû au fait que vous ne spécifiez pas "/ tmp" comme partition et que votre système de fichiers racine est rempli / " tmp "a été remonté comme un repli. Pour résoudre ce problème après avoir libéré de l’espace, il vous suffit de démonter la solution de secours et de la remonter à son point d’origine:

sudo umount overflow

si l’appareil est occupé,

sudo umount -l overflow
    
réponse donnée ck reddy 16.11.2016 - 13:24
la source

Lire d'autres questions sur les étiquettes