web-dev-qa-db-fra.com

Utiliser un cronjob pour nettoyer / tmp

Est-il prudent d’utiliser un script bash et un cronjob pour vider automatiquement /tmp, ou devrais-je le faire différemment?

10
Jochem Kuijpers

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

12
Bruno Pereira

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.

2
turbophi