• =?UTF-8?Q?Logcheck_et_expression_r=C3=A9guli=C3=A8re?=

    From David BERCOT@21:1/5 to All on Thu Jan 2 09:20:01 2025
    This is a multi-part message in MIME format.
    Bonjour,

    Tout d'abord, meilleurs voeux à tous pour 2025 !

    Ensuite, je m'arrache les cheveux depuis plusieurs jours avec Logcheck. J'essaye d'enlever un certain nombre de lignes qui ne m'intéressent pas
    mais je n'arrive pas à trouver la bonne expression régulière.

    Ainsi, la forme de règle qu'on retrouve habituellement est la suivante : ^\w{3} [ :[:digit:]]{11} [-._[:alnum:]]+ systemd\[1\]: Started [-/:. [:alnum:]]+$
    Et cela fonctionne bien pour, par exemple :
    Jan  1 19:12:38 debian systemd[1]...

    Maintenant, j'ai constaté que, selon les fichiers de logs, j'avais aussi : Jan.  1
    Janv. 1
    Dec 31
    Dec. 31
    Déc 31

    J'ai donc tenté :
    ^\w{3}[.]?
    où, sauf erreur de ma part, la partie [.]? signifie soit un ".", soit
    rien du tout.
    Et ça ne marche pas.
    D'autre part, il faudrait en fait que ce soit une expression qui intègre
    3 ou 4 caractères suivis, éventuellement, d'un point.

    Est-ce que vous auriez une idée ?

    Merci d'avance.

    David.
    <!DOCTYPE html>
    <html>
    <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <font face="Marianne">Bonjour,<br>
    <br>
    Tout d'abord, meilleurs voeux à tous pour 2025 !<br>
    <br>
    Ensuite, je m'arrache les cheveux depuis plusieurs jours avec
    Logcheck.<br>
    J'essaye d'enlever un certain nombre de lignes qui ne
    m'intéressent pas mais je n'arrive pas à trouver la bonne
    expression régulière.<br>
    <br>
    Ainsi, la forme de règle qu'on retrouve habituellement est la
    suivante :<br>
    ^\w{3} [ :[:digit:]]{11} [-._[:alnum:]]+ systemd\[1\]: Started
    [-/:. [:alnum:]]+$<br>
    Et cela fonctionne bien pour, par exemple :<br>
    Jan  1 19:12:38 debian systemd[1]...<br>
    <br>
    Maintenant, j'ai constaté que, selon les fichiers de logs, j'avais
    aussi :<br>
    Jan.  1<br>
    Janv. 1<br>
    Dec 31<br>
    Dec. 31<br>
    Déc 31<br>
    <br>
    J'ai donc tenté :<br>
    </font><font face="Marianne">^\w{3}[.]?<br>
    où, sauf erreur de ma part, la partie [.]? signifie soit un ".",
    soit rien du tout.<br>
    Et ça ne marche pas.<br>
    D'autre part, il faudrait en fait que ce soit une expression qui
    intègre 3 ou 4 caractères suivis, éventuellement, d'un point.<br>
    <br>
    Est-ce que vous auriez une idée ?<br>
    <br>
    Merci d'avance.<br>
    <br>
    David.<br>
    </font>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Basile Starynkevitch@21:1/5 to David BERCOT on Thu Jan 2 10:40:01 2025
    On Thu, 2025-01-02 at 09:09 +0100, David BERCOT wrote:
    Bonjour,

    Tout d'abord, meilleurs voeux à tous pour 2025 !

    Ensuite, je m'arrache les cheveux depuis plusieurs jours avec
    Logcheck.
    J'essaye d'enlever un certain nombre de lignes qui ne m'intéressent
    pas mais je n'arrive pas à trouver la bonne expression régulière.

    Ainsi, la forme de règle qu'on retrouve habituellement est la
    suivante :
    ^\w{3} [ :[:digit:]]{11} [-._[:alnum:]]+ systemd\[1\]: Started [-/:. [:alnum:]]+$
    Et cela fonctionne bien pour, par exemple :
    Jan  1 19:12:38 debian systemd[1]...

    Maintenant, j'ai constaté que, selon les fichiers de logs, j'avais
    aussi :
    Jan.  1
    Janv. 1
    Dec 31
    Dec. 31
    Déc 31

    J'ai donc tenté :
    ^\w{3}[.]?
    où, sauf erreur de ma part, la partie [.]? signifie soit un ".", soit
    rien du tout.
    Et ça ne marche pas.
    D'autre part, il faudrait en fait que ce soit une expression qui
    intègre 3 ou 4 caractères suivis, éventuellement, d'un point.

    Voir https://man7.org/linux/man-pages/man7/time.7.html et https://man7.org/linux/man-pages/man5/locale.5.html

    Une solution pour le futur serait de configurer la langue du système en anglais POSIX (ou C) et de laisser les utilisateurs humains configurer
    leur langue.

    Alors tous les fichiers de log des démons ou serveurs mentionnerait Jan
    1.

    Car la date et l'heure sont formattés par la fonction https://man7.org/linux/man-pages/man3/strftime.3.html

    Pour les logiciels démons récalcitrants, je suggère de faire un rapport
    de bogue et de proposer un patch.

    Bonne année à tous.

    --
    Basile STARYNKEVITCH <basile@starynkevitch.net>
    8 rue de la Faïencerie
    92340 Bourg-la-Reine, France
    http://starynkevitch.net/Basile & https://github.com/bstarynk


    <html><head>


    <style>pre,code,address {
    margin: 0px;
    }
    h1,h2,h3,h4,h5,h6 {
    margin-top: 0.2em;
    margin-bottom: 0.2em;
    }
    ol,ul {
    margin-top: 0em;
    margin-bottom: 0em;
    }
    blockquote {
    margin-top: 0em;
    margin-bottom: 0em;
    }
    </style></head>
    <body><div>On Thu, 2025-01-02 at 09:09 +0100, David BERCOT wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div> <font face="Marianne">Bonjour,<br> <br> Tout d'abord, meilleurs voeux à tous
    pour 2025 !<br> <br> Ensuite, je m'arrache les cheveux depuis plusieurs jours avec Logcheck.<br> J'essaye d'enlever un certain nombre de lignes qui ne m'intéressent pas mais je n'arrive pas à trouver la bonne expression régulière.<br> <br> Ainsi, la
    forme de règle qu'on retrouve habituellement est la suivante
  • From Michel Verdier@21:1/5 to All on Thu Jan 2 11:20:01 2025
    Le 2 janvier 2025 David BERCOT a écrit :

    Ensuite, je m'arrache les cheveux depuis plusieurs jours avec Logcheck. J'essaye d'enlever un certain nombre de lignes qui ne m'intéressent pas mais je n'arrive pas à trouver la bonne expression régulière.
    [...]
    Est-ce que vous auriez une idée ?

    Je ne met rien pour la partie date/heure des lignes, je trouve qu'un
    début de pattern <programme>\[[0-9]+]: est suffisamment discriminant pour
    ne filtrer que les logs de ce programme.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David BERCOT@21:1/5 to All on Thu Jan 2 19:40:01 2025
    Merci Basile pour ta suggestion et Michel pour la tienne.
    Vos arguments s'entendent mais, en l'état, je pense rester sur ma configuration actuelle (avec des "locales"... un peu exotiques vu de
    loin [mais que je reverrai à l'occasion] et des expressions régulières
    au plus près possible des lignes de logs).

    Ainsi, j'ai donc besoin d'une expression régulière qui accepte 3 ou 4 caractères suivis, potentiellement, d'un point.

    De nouveaux tests me donnent : ^.{3,4}[.]?
    Je vais poursuivre...

    Bonne soirée.

    David.

    -------- Message d'origine --------
    De : Basile Starynkevitch <basile@starynkevitch.net>
    Envoyé : jeudi 2 janvier 2025 à 10:34 UTC+1
    Pour : David BERCOT <debian@bercot.org>, Debian-user-French <debian-user-french@lists.debian.org>
    Sujet : RE: Logcheck et expression régulière

    On Thu, 2025-01-02 at 09:09 +0100, David BERCOT wrote:
    Bonjour,

    Tout d'abord, meilleurs voeux à tous pour 2025 !

    Ensuite, je m'arrache les cheveux depuis plusieurs jours avec Logcheck.
    J'essaye d'enlever un certain nombre de lignes qui ne m'intéressent
    pas mais je n'arrive pas à trouver la bonne expression régulière.

    Ainsi, la forme de règle qu'on retrouve habituellement est la suivante :
    ^\w{3} [ :[:digit:]]{11} [-._[:alnum:]]+ systemd\[1\]: Started [-/:.
    [:alnum:]]+$
    Et cela fonctionne bien pour, par exemple :
    Jan 1 19:12:38 debian systemd[1]...

    Maintenant, j'ai constaté que, selon les fichiers de logs, j'avais aussi : >> Jan. 1
    Janv. 1
    Dec 31
    Dec. 31
    Déc 31

    J'ai donc tenté :
    ^\w{3}[.]?
    où, sauf erreur de ma part, la partie [.]? signifie soit un ".", soit
    rien du tout.
    Et ça ne marche pas.
    D'autre part, il faudrait en fait que ce soit une expression qui
    intègre 3 ou 4 caractères suivis, éventuellement, d'un point.

    Voir https://man7.org/linux/man-pages/man7/time.7.html <https:// man7.org/linux/man-pages/man7/time.7.html> et https://man7.org/linux/ man-pages/man5/locale.5.html <https://man7.org/linux/man-pages/man5/ locale.5.html>

    Une solution pour le futur serait de configurer la langue du système en anglais POSIX (ou C) et de laisser les utilisateurs humains configurer
    leur langue.

    Alors tous les fichiers de log des démons ou serveurs mentionnerait Jan 1.

    Car la date et l'heure sont formattés par la fonction https://man7.org/ linux/man-pages/man3/strftime.3.html <https://man7.org/linux/man-pages/ man3/strftime.3.html>

    Pour les logiciels démons récalcitrants, je suggère de faire un rapport
    de bogue et de proposer un patch.

    Bonne année à tous.

    --

    Basile STARYNKEVITCH <basile@starynkevitch.net>
    8 rue de la Faïencerie
    92340 Bourg-la-Reine, France
    http://starynkevitch.net/Basile & https://github.com/bstarynk


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?S=C3=A9bastien_Dinot?=@21:1/5 to All on Thu Jan 2 22:50:01 2025
    Bonsoir David, bonsoir tout le monde,

    Le 2025-01-02 09:09, David BERCOT a écrit :

    Ainsi, la forme de règle qu'on retrouve habituellement est la suivante
    :
    ^\w{3} [ :[:digit:]]{11} [-._[:alnum:]]+ systemd\[1\]: Started [-/:. [:alnum:]]+$
    Et cela fonctionne bien pour, par exemple :
    Jan 1 19:12:38 debian systemd[1]...
    Maintenant, j'ai constaté que, selon les fichiers de logs, j'avais
    aussi :
    Jan. 1
    Janv. 1
    Dec 31
    Dec. 31
    Déc 31

    Je décompose tes exemples ainsi :

    * La ligne commence par le mois, indiqué sur 3 à 4 caractères
    * Suivi d'un point optionnel
    * Suivi de un espace
    * Suivi du jour du mois, calé ou non sur 2 caractères (et de l'heure),
    ce qui donne une suite de 10 à 11 chiffres, espaces et deux-points
    * Etc.

    Si tu as bien ces variations, la bonne expression rationnelle est :

    ^\w{3,4}\.? [ :[:digit:]]{10,11} [-._[:alnum:]]+
    systemd\[[[:digit:]]+\]: .*$

    Si on décompose :

    * ^\w{3,4} : La ligne commence par le mois, indiqué sur 3 à 4 caractères
    * \.? : Suivi d'un point optionnel
    * : Suivi de un espace
    * [ :[:digit:]]{10,11} : Suivi du jour du mois, calé ou non sur 2 caractères (et de l'heure), ce qui donne une suite de 10 à 11 chiffres, espaces et deux-points
    * Etc.

    Tu noteras que j'ai opté pour l'expression :

    systemd\[[[:digit:]]+\]:

    Et non :

    systemd\[1\]:

    Car le PID du processus systemd n'est pas toujours 1. En fait, il y a
    plusieurs processus systemd. Voici ce que j'ai sur mon serveur :

    $ ps axf | grep '/systemd ' | grep -v grep
    1 ? Ss 1:36 /usr/lib/systemd/systemd --system --deserialize=116
    4059223 ? Ss 0:00 /usr/lib/systemd/systemd --user

    Maintenant un exemple sur pièce :

    Je crée le fichier de log avec les messages que je veux capturer :

    $ cat > /tmp/log <<EOF
    Jan. 1 22:08:01 debian systemd[1]: Starting user@0.service - User
    Manager for UID 0...
    Janv. 1 22:08:01 debian systemd[4059223]: Queued start job for default
    target default.target.
    Dec 31 22:08:01 debian systemd[4059223]: Created slice app.slice - User Application Slice.
    Dec. 31 22:08:01 debian systemd[4059223]: Reached target paths.target - Paths.
    Déc 31 22:08:01 debian systemd[1]: Starting user@0.service - User
    Manager for UID 0...
    EOF

    Puis je crée le fichier de règles :

    $ cat > /tmp/rules <<EOF
    ^\w{3,4}\.? [ :[:digit:]]{10,11} [-._[:alnum:]]+
    systemd\[[[:digit:]]+\]: .*$
    EOF

    Puis je vérifie quels messages sont capturés par mes (enfin, ici, ma)
    règles :

    $ logcheck-test -l /tmp/log -r /tmp/rules
    Jan. 1 22:08:01 debian systemd[1]: Starting user@0.service - User
    Manager for UID 0...
    Janv. 1 22:08:01 debian systemd[4059223]: Queued start job for default
    target default.target.
    Dec 31 22:08:01 debian systemd[4059223]: Created slice app.slice - User Application Slice.
    Dec. 31 22:08:01 debian systemd[4059223]: Reached target paths.target -
    Paths.
    Déc 31 22:08:01 debian systemd[1]: Starting user@0.service - User
    Manager for UID 0... ================================================================================
    parsed file: /tmp/log
    used rule file: /tmp/rules

    Les 5 lignes sont bien capturées, ma règle fonctionne.

    A++, Sébastien

    --
    Sébastien Dinot
    Ne goutez pas au logiciel libre, vous ne pourriez plus vous en passer ! https://www.palabritudes.net/
    <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body style='font-size: 10pt; font-family: Verdana,Geneva,sans-serif'>
    <div style="font-size: 10pt; font-family: Verdana,Geneva,sans-serif;"> <p>Bonsoir David, bonsoir tout le monde,</p>
    <p>Le 2025-01-02 09:09, David BERCOT a &eacute;crit&nbsp;:</p>
    <blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0">
    <p>Ainsi, la forme de r&egrave;gle qu'on retrouve habituellement est la suivante :<br />^\w{3} [ :[:digit:]]{11} [-._[:alnum:]]+ systemd\[1\]: Started [-/:. [:alnum:]]+$<br />Et cela fonctionne bien pour, par exemple :<br />Jan&nbsp; 1 19:12:38 debian
    systemd[1]...<br />Maintenant, j'ai constat&eacute; que, selon les fichiers de logs, j'avais aussi :<br />Jan.&nbsp; 1<br />Janv. 1<br />Dec 31<br />Dec. 31<br />D&eacute;c 31</p>
    </blockquote>
    <p>Je d&eacute;compose tes exemples ainsi :</p>

    <li>La ligne commence par le mois, indiqu&eacute; sur 3 &agrave; 4 caract&egrave;res</li>
    <li>Suivi d'un point optionnel</li>
    <li>Suivi de un espace</li>
    <li>Suivi du jour du mois, cal&eacute; ou non sur 2 caract&egrave;res (et de l'heure), ce qui donne une suite de 10 &agrave; 11 chiffres, espaces et deux-points</li>
    <li>Etc.</li>
    </ul>
    <p>Si tu as bien ces variations, la bonne expression rationnelle est :</p> <p><span style="font-family: 'courier new', courier, monospace;">^\w{3,4}\.? [ :[:digit:]]{10,11} [-._[:alnum:]]+ systemd\[[[:digit:]]+\]: .*$</span></p>
    <p>Si on d&eacute;compose :</p>

    <li><span style="font-family: 'courier new', courier, monospace;"><strong>^\w{3,4}</strong></span> : La ligne commence par le mois, indiqu&eacute; sur 3 &agrave; 4 caract&egrave;res</li>
    <li><span style="font-family: 'courier new', courier, monospace;"><strong>\.?</strong></span> : Suivi d'un point optionnel</li>
    <li><strong><span style="font-family: 'courier new', courier, monospace;">&nbsp;</span> </strong>: Suivi de un espace</li>
    <li><span style="font-family: 'courier new', courier, monospace;"><strong>[ :[:digit:]]{10,11}</strong></span> : Suivi du jour du mois, cal&eacute; ou non sur 2 caract&egrave;res (et de l'heure), ce qui donne une suite de 10 &agrave; 11 chiffres, espaces
    et deux-points</li>
    <li>Etc.</li>
    </ul>
    <p>Tu noteras que j'ai opt&eacute; pour l'expression :</p>
    <p><span style="font-family: 'courier new', courier, monospace;">systemd\[[[:digit:]]+\]:</span></p>
    <p>Et non :</p>
    <p><span style="font-family: 'courier new', courier, monospace;">systemd\[1\]:</span></p>
    <p>Car le PID du processus systemd n'est pas toujours 1. En fait, il y a plusieurs processus systemd. Voici ce que j'ai sur mon serveur :</p>
    <p><span style="font-family: 'courier new', courier, monospace;">$ ps axf | grep '/systemd ' | grep -v grep</span><br /><span style="font-family: 'courier new', courier, monospace;">&nbsp; &nbsp; &nbsp; 1 ? &nbsp; &nbsp; &nbsp; &nbsp;Ss &nbsp; &nbsp; 1:
    36 /usr/lib/systemd/systemd --system --deserialize=116</span><br /><span style="font-family: 'courier new', courier, monospace;">4059223 ? &nbsp; &nbsp; &nbsp; &nbsp;Ss &nbsp; &nbsp; 0:00 /usr/lib/systemd/systemd --user</span></p>
    <p>Maintenant un exemple sur pi&egrave;ce :</p>
    <p>Je cr&eacute;e le fichier de log avec les messages que je veux capturer :</p>
    <p><span style="font-family: 'courier new', courier, monospace;">$ cat &gt; /tmp/log &lt;&lt;EOF</span><br /><span style="font-family: 'courier new', courier, monospace;">&gt; Jan. &nbsp;1 22:08:01 debian systemd[1]: Starting user@0.service - User
    Manager for UID 0...</span><br /><span style="font-family: 'courier new', courier, monospace;">&gt; Janv. 1 22:08:01 debian systemd[4059223]: Queued start job for default target default.target.</span><br /><span style="font-family: 'courier new', courier,
    monospace;">&gt; Dec 31 22:08:01 debian systemd[4059223]: Created slice app.slice - User Application Slice.</span><br /><span style="font-family: 'courier new', courier, monospace;">&gt; Dec. 31 22:08:01 debian systemd[4059223]: Reached target paths.
    target - Paths.</span><br /><span style="font-family: 'courier new', courier, monospace;">&gt; D&eacute;c 31 22:08:01 debian systemd[1]: Starting user@0.service - User Manager for UID 0...</span><br /><span style="font-family: 'courier new', courier,
    monospace;">&gt; EOF</span></p>
    <p>Puis je cr&eacute;e le fichier de r&egrave;gles :</p>
    <p><span style="font-family: 'courier new', courier, monospace;">$ cat &gt; /tmp/rules &lt;&lt;EOF</span><br /><span style="font-family: 'courier new', courier, monospace;">&gt; ^\w{3,4}\.? [ :[:digit:]]{10,11} [-._[:alnum:]]+ systemd\[[[:digit:]]+\]: .*$
    </span><br /><span style="font-family: 'courier new', courier, monospace;">&gt; EOF</span></p>
    <p>Puis je v&eacute;rifie quels messages sont captur&eacute;s par mes (enfin, ici, ma) r&egrave;gles :</p>
    <p><span style="font-family: 'courier new', courier, monospace;">$ logcheck-test -l /tmp/log -r /tmp/rules&nbsp;</span><br /><span style="font-family: 'courier new', courier, monospace;">Jan. &nbsp;1 22:08:01 debian systemd[1]: Starting user@0.service -
    User Manager for UID 0...</span><br /><span style="font-family: 'courier new', courier, monospace;">Janv. 1 22:08:01 debian systemd[4059223]: Queued start job for default target default.target.</span><br /><span style="font-family: 'courier new', courier,
    monospace;">Dec 31 22:08:01 debian systemd[4059223]: Created slice app.slice - User Application Slice.</span><br /><span style="font-family: 'courier new', courier, monospace;">Dec. 31 22:08:01 debian systemd[4059223]: Reached target paths.target -
    Paths.</span><br /><span style="font-family: 'courier new', courier, monospace;">D&eacute;c 31 22:08:01 debian systemd[1]: Starting user@0.service - User Manager for UID 0...</span><br /><span style="font-family: 'courier new', courier, monospace;">======
    ==========================================================================</span><br /><span style="font-family: 'courier new', courier, monospace;">parsed file: /tmp/log</span><br /><span style="font-family: 'courier new', courier, monospace;">used rule
    file: /tmp/rules</span></p>
    <p>Les 5 lignes sont bien captur&eacute;es, ma r&egrave;gle fonctionne.</p> <p>A++, S&eacute;bastien</p>
    <p><br /></p>
    <div id="v1_rc_sig">-- <br />
    <div class="v1pre">S&eacute;bastien Dinot<br />Ne goutez pas au logiciel libre, vous ne pourriez plus vous en passer !<br /><a href="https://www.palabritudes.net/" target="_blank" rel="noopener noreferrer">https://www.palabritudes.net/</a></div>
    </div>
    </div>
    </body></html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David BERCOT@21:1/5 to All on Fri Jan 3 18:10:02 2025
    Bonjour Sébastien,

    Merci beaucoup ! Ca correspond exactement à ce que je cherchais.
    J'ai fait quelques ajustements pour ajouter des règles même s'il est difficile de savoir quels motifs mettre afin de ne pas être dérangé pour rien mais, d'un autre côté, de ne pas non plus louper de véritables alertes.

    Pour info, je me suis rendu compte que tout ne fonctionnait pas comme je
    le voulais tout simplement parce que j'avais créé un lien logique entre
    le répertoire /etc/logcheck/ignore.d.server/ et mon fichier de règles
    stocké dans mon répertoire d'installation.
    Visiblement, il faut le copier car logcheck ne prend pas en compte
    celui-ci s'il est là uniquement via un lien (ln -sf).

    Globalement, j'ai déjà beaucoup moins de lignes même si j'ai encore du ménage à faire.

    Bonne fin de journée.

    David.

    -------- Message d'origine --------
    De : Sébastien Dinot <sebastien.dinot@free.fr>
    Envoyé : jeudi 2 janvier 2025 à 22:43 UTC+1
    Pour : debian-user-french@lists.debian.org French <debian-user-french@lists.debian.org>
    Sujet : RE: Logcheck et expression régulière

    Bonsoir David, bonsoir tout le monde,

    Le 2025-01-02 09:09, David BERCOT a écrit :

    Ainsi, la forme de règle qu'on retrouve habituellement est la suivante :
    ^\w{3} [ :[:digit:]]{11} [-._[:alnum:]]+ systemd\[1\]: Started [-/:.
    [:alnum:]]+$
    Et cela fonctionne bien pour, par exemple :
    Jan 1 19:12:38 debian systemd[1]...
    Maintenant, j'ai constaté que, selon les fichiers de logs, j'avais aussi : >> Jan. 1
    Janv. 1
    Dec 31
    Dec. 31
    Déc 31

    Je décompose tes exemples ainsi :

    * La ligne commence par le mois, indiqué sur 3 à 4 caractères
    * Suivi d'un point optionnel
    * Suivi de un espace
    * Suivi du jour du mois, calé ou non sur 2 caractères (et de l'heure),
    ce qui donne une suite de 10 à 11 chiffres, espaces et deux-points
    * Etc.

    Si tu as bien ces variations, la bonne expression rationnelle est :

    ^\w{3,4}\.? [ :[:digit:]]{10,11} [-._[:alnum:]]+ systemd\[[[:digit:]]+
    \]: .*$

    Si on décompose :

    * *^\w{3,4}* : La ligne commence par le mois, indiqué sur 3 à 4 caractères
    * *\.?* : Suivi d'un point optionnel
    * **: Suivi de un espace
    * *[ :[:digit:]]{10,11}* : Suivi du jour du mois, calé ou non sur 2
    caractères (et de l'heure), ce qui donne une suite de 10 à 11
    chiffres, espaces et deux-points
    * Etc.

    Tu noteras que j'ai opté pour l'expression :

    systemd\[[[:digit:]]+\]:

    Et non :

    systemd\[1\]:

    Car le PID du processus systemd n'est pas toujours 1. En fait, il y a plusieurs processus systemd. Voici ce que j'ai sur mon serveur :

    $ ps axf | grep '/systemd ' | grep -v grep
    1 ? Ss 1:36 /usr/lib/systemd/systemd --system -- deserialize=116
    4059223 ? Ss 0:00 /usr/lib/systemd/systemd --user

    Maintenant un exemple sur pièce :

    Je crée le fichier de log avec les messages que je veux capturer :

    $ cat > /tmp/log <<EOF
    Jan. 1 22:08:01 debian systemd[1]: Starting user@0.service - User Manager for UID 0...
    Janv. 1 22:08:01 debian systemd[4059223]: Queued start job for default target default.target.
    Dec 31 22:08:01 debian systemd[4059223]: Created slice app.slice - User Application Slice.
    Dec. 31 22:08:01 debian systemd[4059223]: Reached target paths.target - Paths.
    Déc 31 22:08:01 debian systemd[1]: Starting user@0.service - User Manager for UID 0...
    EOF

    Puis je crée le fichier de règles :

    $ cat > /tmp/rules <<EOF
    ^\w{3,4}\.? [ :[:digit:]]{10,11} [-._[:alnum:]]+ systemd\[[[:digit:]]+\]: .*$
    EOF

    Puis je vérifie quels messages sont capturés par mes (enfin, ici, ma) règles :

    $ logcheck-test -l /tmp/log -r /tmp/rules
    Jan. 1 22:08:01 debian systemd[1]: Starting user@0.service - User
    Manager for UID 0...
    Janv. 1 22:08:01 debian systemd[4059223]: Queued start job for default
    target default.target.
    Dec 31 22:08:01 debian systemd[4059223]: Created slice app.slice - User Application Slice.
    Dec. 31 22:08:01 debian systemd[4059223]: Reached target paths.target - Paths.
    Déc 31 22:08:01 debian systemd[1]: Starting user@0.service - User
    Manager for UID 0... ================================================================================
    parsed file: /tmp/log
    used rule file: /tmp/rules

    Les 5 lignes sont bien capturées, ma règle fonctionne.

    A++, Sébastien


    --
    Sébastien Dinot
    Ne goutez pas au logiciel libre, vous ne pourriez plus vous en passer ! https://www.palabritudes.net/ <https://www.palabritudes.net/>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)