Lorsque l’on génère des fichiers de log , il faut faire attention à ne remplir ses partitions disque. Le principe est de trouver les fichiers correspondants qui soient assez ancien et d’automatiquement les effacer.
On commence par créer un fichier de script en bash :
[pastacode lang= »bash » message= » » highlight= » » provider= »manual » manual= »nano%20%2Fhome%2Froot%2Fscripts%2Fpurge.sh »/]
Ensuite on insère les lignes de commandes suivantes :
[pastacode lang= »bash » message= » » highlight= » » provider= »manual » manual= »%23!%2Fbin%2Fbash%0Afind%20%2Fhome%2Froot%2Flog%2F%20-name%20’*.log’%20-mtime%20%2B7%20-exec%20rm%20%7B%7D%20%5C%3B%20″/]
Explication de la commande :
La commande find
permet de chercher des fichiers suivant le nom définit par name
où l’on uniquement les fichiers avec l’extension log.
Ensuite l’attribut -mtime +7
permet de chercher les fichiers qui sont agés de plus de 7 jours. Le dernier paramètre -exec
permet d’exécuter une commande.
Dans ce cas, on supprime avec la commande rm
l’ensemble des fichiers sélectionnés.
On rend le fichier de script exécutable
[pastacode lang= »bash » message= » » highlight= » » provider= »manual » manual= »chmod%20%2Bx%20%2Fhome%2Froot%2Fscripts%2Fpurge.sh »/]
Pour automatiser le fonctionnement, il faut insérer la commande dans le fichier crontab qui doit se trouver dans etc (sur debian). On lance un éditeur pour ouvrir le fichier crontab de la machine :
[pastacode lang= »bash » message= » » highlight= » » provider= »manual » manual= »nano%20%2Fetc%2Fcrontab »/]
Puis on insère la référence à notre script à la fin du fichier crontab :
[pastacode lang= »bash » message= » » highlight= » » provider= »manual » manual= »0%201%20*%20*%20*%20root%20%2Fhome%2Froot%2Fscripts%2Fpurge.sh »/]
0
minute
1
heure
*
jour du mois
*
mois
*
jour de la semaine
root
utilisateur
/home/root/scripts/purge.sh
commande à exécuter
Le script va donc s’exécuter tous les jours à 1 heure du matin.