Forum Astuces.divers [Courriel/Exim] Exim et les frozens

Posté par  .
Étiquettes : aucune
0
30
juin
2001
Pour supprimer tous les "frozen e-mails" de la file d'attente d'Exim, une simple ligne de commande suffit:

gawk --posix 'BEGIN{foo=("exim -bp");while((foo|getline)>0)if(/[[:digit:]]+(m|h|d)\ +[[:digit:]]+(\.[[:digit:]])?(K|M) .{6}-.{6}-.{2} <.*> \*{3} frozen \*{3}$/){system("exim -Mrm "$3)}close(foo)}'
  • # Ca c'est un truc de hacker :-)

    Posté par  . Évalué à 1.

    Je connais awk et les expressions rationnelles, mais là c'est un chef-d'oeuvre de commande de gourou !

    Faut pas que je montre linuxfr à mes potes que je veux convertir à Linux et qui trouvent ça compliqué, quand cette astuce est affichée ! :-)
    Une "simple" ligne de commande, qu'est-ce ça doit être alors dans les cas compliqués !
  • # "Une simple ligne de commande"??

    Posté par  . Évalué à 1.

    Euh ouais, simple n'est peut-être pas le mot approprié !!!
  • # Re: Exim et les frozens

    Posté par  . Évalué à 1.

    Si çà interresse quelqu'un une version un peu plus simple :-)
    voila la mienne:

    exim -Mrm `exim -bp | grep "*** frozen ***" | cut -c 11-26 - | tr '\n' ' ' `
  • # Re: Exim et les frozens

    Posté par  (site Web personnel) . Évalué à 1.

    la mienne, encore plus simple (à tester cependant, mais je n'ai pas de frozen sous la main) :

    $ mailq | grep frozen | cut -f 4,4 -d " " | xargs exim -Mrm
  • # Re: Exim et les frozens

    Posté par  . Évalué à 1.

    D'après les Debian tips, il suffit d'utiliser la ligne de commande suivante:

    exim -Mg `mailq | grep frozen | awk '{ print $3 }'`

    ou bien la variation suivante (utilisée dans un de mes scripts):

    for i in `exim -bp | grep frozen | awk {'print $3'}` ; do
    exim -Mrm $i
    done


    Simple is beautiful.
    • [^] # Re: Exim et les frozens

      Posté par  (site Web personnel) . Évalué à 1.

      Je sais pas pourquoi, mais une commande compliquée ne m'impressione jamais, une commande simple oui.

      J'ai toujours le sentiment que celui qui écrit la commande compliquée essaie de s'en tirer comme il peut, et que l'autre sait ce qu'il fait.

      La plupart des personnes prennent pour profond ce qui est obscur.
    • [^] # Re: Exim et les frozens

      Posté par  . Évalué à 1.

      Simple et efficace. Excellent. Ca m'en a viré 4
      • [^] # Re: Exim et les frozens

        Posté par  (site Web personnel) . Évalué à 1.

        Chez moi ça me met
        ================
        2m 2.2K 1AJrNc-0004MQ-00 <>
        ================
        et non pas de 'frozen' dnas la ligne.
        Donc le script devient:

        for i in `mailq | grep "<>" | awk {'print $3'}` ; do
        exim -Mrm $i
        done
        • [^] # oula j'ai déconné.

          Posté par  (site Web personnel) . Évalué à 1.

          en fait non, les <> sont les messages frozen sans champ from.
          C'est pas plus mal qu'ils restent, ceux là, ça permet de le lire et de gérer.
          Donc il faut bien garder le "grep frozen"
  • # Re: Exim et les frozens

    Posté par  . Évalué à 1.

    A noter aussi, du moins pour exim 3.3, qu'on peut rajouter les 2 commandes dans exim.conf:

    auto_thaw = xx
    timeout_after_frozen = yy

    xx et yy étant des valeurs de temps, par exemple: xx = 1h et yy = 20h.

    Avec cette config, les message "frozen" seront déglés toutes les heures, puis abandonnés (renvoyés à l'expediteur) au bout de 20h.
  • # Re: Exim et les frozens

    Posté par  . Évalué à 1.

    C''st clair comme dans l'haut de source, franchement on peut pas faire plus imbitables et moins comprégensible comme commande
    C'est du n'importe quoi comme astuce !!!
    Je pars du principe qu'une astuce doit être facilement mémorisable, là, à part je montre que je tâte sur l'Unix elle n'a aucun intérêt à être publiée.
    • [^] # Re: Exim et les frozens

      Posté par  . Évalué à 1.

      ouh, je suis d'accord avec toi. Surtout que plein de gens ont une manière 1.000.000x plus simple de faire la meme chose. Small is beautiful, pas vrai ?

      Alors a quand les notes sur les astuces ?
  • # Re: Exim et les frozens

    Posté par  . Évalué à 1.

    C'est clair comme dans l'eau de source, franchement on peut pas faire plus imbitables et moins comprégensible comme commande
    C'est du n'importe quoi comme astuce !!!
    Je pars du principe qu'une astuce doit être facilement mémorisable, là, à part je montre que je tâte sur l'Unix elle n'a aucun intérêt à être publiée.
  • # KISS

    Posté par  (site Web personnel) . Évalué à 1.

    Keep It Simple Stupid ...

    ca serait une bonne chose d'updater l'astuce, en laissant une ou deux
    des versions les plus elegantes, et en ajoutant une petite definition des "frozen emails"...
  • # Une astuce supplémentaire concernant awk

    Posté par  . Évalué à 1.

    Je proposerais, au lieu de faire des grep pour ne récupérer que les lignes où il y a les ID de mails de faire :
    awk '{BEGIN RS=""} ...'
    un RS="" va définir le séparateur d'entrée à une ligne vide.
    A vous d'adapter ensuite avec vos différentes méthodes.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.