Script de nettoyage d'une arborescence temporaire en fonction du temps
Bonjour,
Je me rends compte qu'une de mes commandes de nettoyage de dossier n'est pas optimisée, voir en faite non adaptée.
Le contexte:
J'ai un répertoire scratch utilisé par plusieurs sites web pour mettre des fichiers temporaires.
Je nettoie ce répertoire toutes les heures à l'aide d'un crontab avec une commande qui me paraissait aussi simple qu'efficace:
Je recherche tous les fichiers et les dossiers qui ont plus de 2 heures, et je les supprime.
Code:
1 2
|
find /www_tmp/scratch -mmin +120 -exec rm -rf {} \; |
Oui mais voila, en y regardant de plus près, sachant que ce répertoire de scratch utilise des arborescences communes en fonction des sites ou des besoins:
[...]
/scratch/site_avec_des_conversions/jpg_to_gif
/scratch/site_avec_des_conversions/gif_to_jpg
/scratch/site_avec_des_conversions/gif_to_pdf
/scratch/site_sans_conversion/pdf
/scratch/site_sans_conversion/jpg
/scratch/site_sans_conversion/gif
[...]
Si le répertoire site_avec_des_conversions n'a pas vu son contenu de rang 1 modifié (les 3 dossiers nommés en exemple) , il est reconnu par le find comme répertoire à detruire, même si dans son arborescence il y a des fichiers qui viennent juste d'être ajoutées (rand 2,3,4...). Du coup, il est supprimé. :aie:
Et si entre temps il y avait un lien actif vers un fichier du répertoire scratch sur le site, celui-ci n'est plus valable !!! :(
Du coup ma question est: Est-ce que d'après vous il y a une commande qui peut correspondre à mon besoin, ou est-ce que je vais être obligé de passer par un script?
Et si réponse 2, est-ce que vous auriez un exemple de quelque chose de similaire?
D'avance merci pour votre aide.
Cordialement.