Je voudrais exécuter un travail cron nocturne qui supprime tous les fichiers d'un dossier qui n'ont pas été consultés depuis une semaine ou plus. Quelle est la façon la plus efficace de le faire en bash?
Je voudrais exécuter un travail cron nocturne qui supprime tous les fichiers d'un dossier qui n'ont pas été consultés depuis une semaine ou plus. Quelle est la façon la plus efficace de le faire en bash?
Réponses:
Vous voulez l' findoutil .
find folder -depth -type f -atime +7 -delete
(Cela supprimera tous les fichiers ( uniquement les fichiers normaux , pas de canaux, les périphériques spéciaux, les répertoires, les liens symboliques) dans le dossier donné et tous les sous-répertoires (récursivement) où le dernier temps d'accès est plus long qu'il y a 7 jours.)
-type fpour vous assurer qu'il supprime uniquement les fichiers, pas les répertoires entiers.
Vous voudrez peut-être vérifier ce tmpwatchqui peut être mis dans un travail cron. Pas besoin de rouler avec find. Sur RHEL, c'est dans le tmpwatchRPM.
find.
findpeut filtrer en fonction de l'heure. La «justesse» de atime dépend au moins de la configuration (voirnoatime).