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.
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 find /www_tmp/scratch -mmin +120 -exec rm -rf {} \;
[...]
/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é.
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.
Partager