Syslog.conf date dans le nom de fichier log

Résolu
sbouli Messages postés 208 Statut Membre -  
sbouli Messages postés 208 Statut Membre -
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

  1. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
     
    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
  2. sbouli Messages postés 208 Statut Membre 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
    -1
    1. asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
       
      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.)
      0
  3. sbouli Messages postés 208 Statut Membre 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
    }
    
    
    -1
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
    -1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. sbouli Messages postés 208 Statut Membre 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
    -1