Utiliser un cronjob pour nettoyer / tmp

11

Est-il sûr d'utiliser un script bash et un cronjob pour vider /tmpautomatiquement, ou dois-je procéder différemment?

Jochem Kuijpers
la source

Réponses:

13

/tmpest nettoyé à chaque redémarrage du système, mais pour les systèmes qui ne peuvent pas être redémarrés souvent, et spécialement si le seul objectif est de nettoyer /tmpun script peut être fait pour le nettoyer.

Aucun processus ne doit y conserver des données importantes, mais il est important que vous puissiez nettoyer /tmpsans interrompre les processus d'écriture des données tmp.

Je recommande d'utiliser tmpreaperpour cela.

Vous pouvez l'installer avec sudo apt-get install tmpreaper.

Depuis la page de manuel:

tmpreaper recherche et supprime récursivement des fichiers et des répertoires vides qui n'ont pas été consultés pendant un nombre donné de secondes. Normalement, il est utilisé pour nettoyer les répertoires qui sont utilisés pour l'espace de stockage temporaire, comme "/ tmp". Veuillez lire la section AVERTISSEMENTS de ce manuel.

L'utilisation implique normalement l'appel tmpreaperà /tmpun argument de spécification de temps. L'argument de spécification d'heure peut être de djours, hd'heures, mde minutes ou sde secondes.

Veuillez utiliser le --testpour exécuter à sec et obtenir une sortie des résultats avant d'exécuter réellement la commande. Cela vous donnera une idée de ce qui sera supprimé avant de valider les modifications du système de fichiers.

Bruno Pereira
la source
Je vous remercie! Pour répondre pleinement à ma question, pouvez-vous m'expliquer pourquoi c'est mieux que d'utiliser une simple suppression récursive?
Jochem Kuijpers
1
Ce n'est pas le cas, c'est juste plus simple à utiliser et les arguments utilisés sont plus compréhensibles. Un simple rm -rfsur une liste de fichiers retournés par findferait également l'affaire. C'est "juste une autre façon", sans même dire que c'est la meilleure, juste celle que j'utilise sur les serveurs que j'installe.
Bruno Pereira
tmpreapersemble être un bon outil, à utiliser --testet --showdeletesà tester.
RichVel
3

Essayez d'ajouter un cronjob qui s'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 supprimerait tous les fichiers de plus de 5 jours.

turbophi
la source