Est-il sûr de rm -rf / tmp / *?


29

C'est quelque chose que je faisais beaucoup sur Windows, mais après mon récent fiasco, je veux m'en assurer. Est-il sécuritaire de le faire

sudo rm -rf /tmp/*

?


S'agit-il d'un serveur en cours d'exécution ou d'une machine de bureau avec arrêt quotidien?
utilisateur inconnu

Je voudrais vous demander pourquoi vous souhaitez supprimer des fichiers dans / tmp? Est-ce parce qu'il se remplit ou pour des raisons de confidentialité? S'il s'agit d'un problème d'espace, cela peut être dû à une application mal comportée, ou il se peut qu'elle doive se trouver sur une plus grande partition. En cas de confidentialité, il existe d'autres alternatives, telles que l'utilisation de systèmes de fichiers cryptés que vous voudrez peut-être envisager.
Rob

Cela peut provoquer divers problèmes sur votre système, mais cela fonctionnera principalement.
Peterh dit de réintégrer Monica le

Réponses:


19

En général, non.

S'il se remplit d'ordure, vous voudrez peut-être regarder quel logiciel ne nettoie pas après lui-même.

Vous pouvez également utiliser find pour identifier les fichiers qui n'ont pas été modifiés ou auxquels vous avez accédé depuis longtemps et qui sont probablement sûrs à supprimer.


9
Concourez avec le refrain du «non» ici et l'addendum que la plupart des distributions Linux nettoient automatiquement /tmp/au démarrage. Bien que cela ne soit pas nécessairement utile si nous parlons d'un serveur sans redémarrage-EVER ici, une possibilité pourrait être en cours d'exécution find ./ -type f -atime 14 -exec rm {} \; chaque semaine ou ainsi pour supprimer tout fichier brut qui n'a pas été consulté du tout au cours des deux dernières semaines. ..
Shadur

find ./ -type f -atime 14 -deleteavec gnu-find
utilisateur inconnu

@user ceci suppose bien sûr que /tmpn'utilise pas les valeurs par défaut actuelles du noyau qui relatimene sont mises à jour que lorsque le fichier est modifié, ou noatime. Dans ce cas, cela atimene sera pas utile à distance.
xenoterracide

8

La vraie réponse est - cela dépend. / tmp peut être utilisé par des applications qui nécessitent la présence de fichiers de verrouillage ou de journaux temporaires pour fonctionner, ou il peut ne pas l'être. Il peut y avoir des liens symboliques là-dedans ... je ne sais pas pourquoi, mais c'est toujours possible.

Vous devriez vraiment regarder ce qui s'y trouve avant de décider de le supprimer. faire un rf -rf * sur n'importe quoi est intrinsèquement dangereux.


3
Sur mon système, les fichiers journaux vont dans / var / log, les fichiers de verrouillage dans / var / lock.
utilisateur inconnu

3
@user bien sûr, pour les démons système ... cela ne signifie pas nécessairement qu'il n'y a pas de verrous ou de journaux pour une application utilisateur /tmpcar l'utilisateur normal ne peut pas écrire dans /var/log|lockJ'ai un script shell qui écrit un verrou dans/tmp
xenoterracide

7

Par exemple, si vous avez une base de données MySQL en cours d'exécution sur votre ordinateur qui va tuer son socket, ou si vous utilisez emacs comme serveur qui va tuer le processus serveur. Il existe de nombreux autres cas où il n'est pas sûr de supprimer ces fichiers. La meilleure chose à faire est d'écrire un script qui vérifie la date du fichier et ne le supprime que s'il est ancien.


Question rapide quand vous dites "ça va tuer sa socket" que voulez-vous dire par 'socket'?
Qasim


2

Non.

Mais vous pourriez avoir un disque virtuel pour le répertoire / tmp, puis il serait vide après chaque redémarrage du système. Et comme effet secondaire, votre système peut devenir un peu plus gros plus rapidement.

Google a beaucoup d'informations sur les tmpfs et / ou les ramfs.


N'est-il pas courant d'effacer / tmp automatiquement au redémarrage? Gentoo le fait, et je pense qu'Ubuntu le fait, mais cela fait un moment que je ne l'ai pas utilisé
Michael Mrozek

Non, je ne pense pas que les distributions dérivées de Debian comme Ubuntu le font (en ce moment en tout cas). Mais il est assez facile d'ajouter cela si vous l'aimez.
Johan

Ubuntu Matty (ou quel que soit le nom de la version actuelle) le fait. Mais si vous ne redémarrez pas votre machine régulièrement, cela ne se produira pas.
Rob

Ok, n'a pas vérifié le courant. J'utilise la piste LTS en ce moment.
Johan

Ubuntu le fait, et tous les Linux que j'ai testés auparavant l'ont fait: Knoppix, Peanut, Halloween, Red Hat, SuSe. Pourquoi cela rendrait-il le système plus rapide? Qu'est-ce qui serait exactement plus rapide? Calculs, accès disque, mise en réseau, démarrage?
utilisateur inconnu

-4

Ma suggestion est de renommer votre dossier tmp en premier pour voir ce qui est affecté par ce répertoire. Renommez-le de "tmp" en "old_tmp". En outre, créez un nouveau dossier vide avec le nom "tmp" car une configuration ou un processus système peut nécessiter que ce dossier crée des fichiers dans ce répertoire comme des fichiers journaux. Suivez ces étapes pour la suppression sécurisée de la date tmp.

1- Renommez le répertoire "tmp" existant en "old_tmp". 2- Créez un nouveau répertoire "tmp" vide 3- Attribuez toutes les autorisations en tant que "0777" à ce répertoire nouvellement créé afin que le système / configuration puisse avoir la permission de créer / placer le journal et d'autres fichiers dans ce répertoire. 4- Exécutez le système et les applications pour vous assurer que tout fonctionne correctement et se comporte comme d'habitude. Gardez en observation pendant 2-3 jours. 5- Si rien n'est affecté en raison du renommage de votre répertoire "tmp" en "old_tmp", vous pouvez supprimer le répertoire "old_tmp".

Remarque: Si quelque chose causant un problème est dû au changement de nom du répertoire "tmp" en "old_tmp", laissez ce répertoire à son nom "tmp" d'origine.


2
C'est vraiment une mauvaise idée. Il existe de nombreux utilitaires shell standard qui écrivent des fichiers temporaires /tmpet qui commenceraient à échouer dès que vous renommez l'original /tmp. Notez également que le /tmprépertoire doit avoir des autorisations spécifiques (ensemble de bits collants, par exemple).
Kusalananda

Veuillez lire attentivement ce que j'ai dit: vous avez raison, il peut y avoir de nombreux utilitaires shell standard qui écrivent des fichiers temporaires dans le répertoire "/ tmp", c'est pourquoi j'ai dit de créer un nouveau répertoire "tmp" et de lui attribuer une autorisation complète après avoir renommé l'ancien existant répertoire "tmp".
A.Aleem11

1
Oui, et vous avez dit que les autorisations devraient l'être 0777alors qu'elles devraient l'être 1777.
Kusalananda
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.