Souvent, j'efface le fichier journal il y a 7 jours et j'utilise la date comme condition comme la rotation, Cette fois, j'ai fait un échantillon bash lors de la rotation en spécifiant le nombre.
Le fichier à faire pivoter cette fois est Il sera tourné au format server.log.YYYY-MM-DD.
/var/log/server.log #Dernier fichier /var/log/server.log.2020-03-25 /var/log/server.log.2020-03-24 /var/log/server.log.2020-03-23 /var/log/server.log.2020-03-22
#!/bin/bash
ROTATE_GEN=7 #Génération de rotation (7 à gauche cette fois)
LOG=/var/log/server.log #Fichier cible
#Enregistrer les fichiers avec la date
mv ${LOG} ${LOG}.`date +"%Y-%m-%d"`
#Nombre actuel de fichiers(FILE_CNT) -Nombre de générations(ROTATE_GEN)
# =Nombre de fichiers à supprimer(RM_CNT)
FILE_CNT=`ls -1t ${LOG}.* | wc -l`
RM_CNT=`expr ${FILE_CNT} - ${ROTATE_GEN}`
# RM_Supprimer autant de fichiers qu'il y a de CNT
if [[ $RM_CNT -gt 0 ]] ; then
ls -1t ${LOG}.* | tail -n ${RM_CNT} | xargs rm -f
fi