Est-il prudent d’utiliser un script bash et un cronjob pour vider automatiquement /tmp
, ou devrais-je le faire différemment?
/tmp
est nettoyé à chaque redémarrage du système, mais pour les systèmes ne pouvant pas être redémarrés souvent, et spécialement si le seul objectif est de nettoyer /tmp
, un script peut être créé pour le nettoyer.
Aucun processus ne devrait conserver des données importantes à cet endroit, mais il est important que vous puissiez nettoyer /tmp
sans interrompre les processus qui écrivent des données dans tmp
.
Je recommande d'utiliser tmpreaper
pour cela.
Vous pouvez l'installer avec Sudo apt-get install tmpreaper
.
De la page de manuel:
tmpreaper recherche et supprime de manière récursive des fichiers et des répertoires vides inutilisés pendant un nombre de secondes donné. Normalement, il est utilisé pour nettoyer les répertoires utilisés comme espaces de stockage temporaires, tels que "/ tmp". Veuillez lire la section AVERTISSEMENTS de ce manuel.
L'utilisation implique normalement l'appel de tmpreaper
dans /tmp
avec un argument de spécification de durée. L'argument de spécification de temps peut être quelque chose de d
pour les jours, h
pour les heures, m
pour les minutes ou s
pour les secondes.
Veuillez utiliser le --test
pour effectuer un essai à sec et obtenir une sortie des résultats avant d'exécuter la commande. Cela vous donnera une idée de ce qui sera supprimé avant de valider réellement les modifications apportées au système de fichiers.
Essayez d'ajouter un cronjob qui exécute
find /tmp/* -type d -mtime +5 -print0 | xargs -0 rm -rf
find /tmp/* -type f -mtime +5 -print0 | xargs -0 rm -rf
Cela effacerait tous les fichiers de plus de 5 jours.