Syslog.conf date dans le nom de fichier log

Résolu/Fermé
Signaler
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
-
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
-
Bonjour,

Je cherche un moyen de paramétrer mon syslog pour que les log mail ne soit plus au format :
mail.log
mais plutot
mail.2008_10_03.log ou 2008_10_03.mail.log
ou peut importe mais avec la date du jour de log dans le nom .....


Est-ce possible ??

Cordialement,

Stéphane

5 réponses

Messages postés
13088
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
21 octobre 2021
420
C'est possible dans une certaines mesure avec logrotate...

Grosso-modo, tu peux demander une rotation des logs chaque jour, et changer le suffix (par defaut: .1 .2 .3 etc.) par une date.

Dans ce cas, seul le fichier du jour n'aura pas de date.

Jettes un oeil du coté de la commande man 8 logrotate ou reviens ici si tu veux plus d'info, des exemple de configuration, etc.

A plus
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41989 internautes nous ont dit merci ce mois-ci

Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
Bonjour,

Merci pour cette réponse, cependant rien ne figure sur cette option dans http://www.delafond.org/traducmanfr/man/man8/logrotate.8.html

La seule référence au suffix est dans l'option extension.

Par ailleur, quelle date logrotate va-t-il utiliser ? s'il change la date à chaque rotation de log, ça ne sert à rien, j'ai besoin d'avoir la date fixe du début de log (pour le moment j'ouvre le fichier et je regarde la date de la première ligne mais c'est SUPER lour pour les gz).

Merci pour votre aide.

Stéphane
Messages postés
13088
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
21 octobre 2021
420
Re,

https://linux.die.net/man/8/logrotate voir la ligne dateext

Après sur la date prise, à toi de faire des tests, s'il fait la rotation tout les matins à 6 heures par exemple, dans le fichier mail.20081003.gz tu auras les logs du 02 10 2008 à 6h01 au 03 10 2008 à 6h00, mais tu peux demander a ce que logrotate s'execute à 0h00 tout les jours (dans /etc/crontab, la ligne qui charge les script de /etc/cron.daily, tu as plusieurs solutions, ajouter une ligne dans ce fichier pour logrotate et supprimer logrotate de /etc/cron.daily, executer /etc/cron.daily/* a minuit, etc.)
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
Ce serait effectivement parfais. cependant, j'ai lancé manuellement plusieurs fois le logrotate (avec -f) et je n'ai pas d'heure dans les noms des fichiers de logs ... voici mon logrotate.d/postfix


/var/log/mail/* {
    compress
    daily
    dateext
    rotate 10
    maxage 10
    olddir /var/log/mail/archives
    delaycompress
    notifempty
    sharedscripts
    create 644 root root
    postrotate
        /etc/init.d/sysklogd restart > /dev/null
    endscript
}

Messages postés
18344
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
26 novembre 2021
5 442
hello
ou par un script dand cron à 0h01 qui change le nom du fichier log et redémarre syslogd
sed -i s/mail.log/mail.$(date).log/ /etc/syslog.conf
pkill -HUP syslogd
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
En fait ça a fonctionné, il fallait juste etre patient, le lancemen avec -f ne fonctionnait pas lui et par contre, il faut "purger" manuellement les fichiers antérieurs ...

Stéphane