I. Présentation
Dans ce tutoriel, nous allons apprendre à tirer et à agir sur des fichiers et des dossiers selon une date. Cela pourra être leur date de création, de modification ou de dernier accès. Nous pourrons effectuer plusieurs actions sur ces données une fois que nous saurons les trier.
II. Les options FIND
Pour ce faire, nous allons nous aider de la commande « find » qui sert à lister et trier des fichiers selon certaines options. Nous pouvons en effet avec FIND définir le nom ou une partie du nom de ce que nous cherchons ( option « -name < >« ), définir sur combien de niveau (arborescence) on souhaite chercher ( option « -maxdepth < >« ), depuis où, etc …
Par exemple si nous souhaitons chercher toutes les archives faites dans le dossier « /var/log » qui sont plus âgées que 5 jours :
find /var/log/ -maxdepth 3 -name "*gz*" -ctime +5
Explication :
- « /var/log » : indique le répertoire ou nous allons chercher. Nous aurions aussi pu indiquer « . » pour spécifier le répertoire où nous nous trouvons.
- « name « *tar* » » : Permet de nous afficher tous les fichiers qui possèdent « tar » dans leur nom. On s’aide des « * » qui nous permettent de dire « tout à partir du moment ou il y a tar ».
- « maxdepth 3 » : permet d’indiquer que nous allons descendre dans les arborescences sur trois niveaux. Le trois à été choisi car on descend rarement plus de 3 niveaux dans les logs mais cela peut être plus où peut ne pas être indiqué pour descendre au maximum.
- « ctime +5 » : c’est l’option la plus intéressante, avec celle-ci nous n’affichons que les données dont la création est plus vieille que 5 jours.
Avec cette dernière option, nous pouvons trier les fichiers selon la date, mais il existe d’autres options :
- « ctime » pour « creation time » : permet de n’afficher que les fichiers dont la création est plus ou moins vieille que le nombre de jour donné.
- « atime » pour « access time » : permet de n’afficher que les fichiers dont le dernier accès est plus ou moins vieux que le nombre de jour donné
- « mtime » pour « modification time« : permet de n’afficher que les fichiers dont la dernière modification est plus ou moins vieille que le nombre de jour donné
Sur ces trois options, nous pouvons spécifier un nombre de jours précédé d’un « + » pour « plus vieux que X jours » ou un « – » pour spécifier « moins vieux que« .
Quelques exemples :
Pour lister les fichiers qui ont été modifiés il y a moins de trois jours :
find -mtime -3
Pour lister les fichiers qui ont été ouverts (lus) il y a plus de 20 jours :
find -atime +20
On peut bien entendu combiner l’une des trois options avec les autres options vues un peu plus tôt dans le tutoriel.
III. Supprimer les fichiers
Maintenant que nous savons lister les fichiers, nous voulons agir sur les fichiers que nous avons trouvés avec la même ligne de commande. On peut pour cela ajouter « -exec « . Par exemple si nous souhaitons supprimer les archives qui date de plus de 30 jours dans le dossier « /var/log »
find /var/log/ -maxdepth 3 -name "*gz*" -ctime +30 -exec rm -f \;
- « » permet d’afficher le nom du fichier trouvé à la place de ces deux accolades.
- « \; » : permet de terminer la commande proprement
Nous sommes libre d’effectuer la commande que l’on souhaite après le « -exec« .
Hébergez votre site à partir de 2$ sur 👉👉👉 https://www.tnctech.ca