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' find
outil .
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 f
pour vous assurer qu'il supprime uniquement les fichiers, pas les répertoires entiers.
Vous voudrez peut-être vérifier ce tmpwatch
qui peut être mis dans un travail cron. Pas besoin de rouler avec find
. Sur RHEL, c'est dans le tmpwatch
RPM.
find
.
find
peut filtrer en fonction de l'heure. La «justesse» de atime dépend au moins de la configuration (voirnoatime
).