Anzeige:
Ergebnis 1 bis 3 von 3

Thema: bash: tail: write error: Broken pipe

  1. #1
    Registrierter Benutzer
    Registriert seit
    Sep 2020
    Beiträge
    2

    bash: tail: write error: Broken pipe

    Hallo zusammen,

    Ich habe ein Script geschrieben "filter_postfix_SASL_fail_dmn.sh" welches mich über fehlerhafte Logins informieren soll:
    Code:
    #!/bin/sh
    # Postfix SASL fail
    
    tail -fn0 /var/log/maillog | while read line ; do
    stamp=`grep "SASL PLAIN authentication failed" /var/log/maillog | tail -n 1 | cut -d ' ' -f 1-3`
    ip=`grep "SASL PLAIN authentication failed" /var/log/maillog | tail -n 1 | cut -d '[' -f 3 | cut -d ']' -f 1`
    
    mail -s "Postfix SASL failed" user@domain.com <<< "Date: $stamp
        IP: $ip
        ";
    done

    Um das Script zu starten, habe ich unter Centos 7.8 einen systemd service "maillogmon.service" angelegt:
    Code:
    [Unit]
    Description=Mail Log Monitor SASL fail logins
    After=network.target
    
    [Service]
    Type=simple
    ExecStart=/bin/bash /usr/local/bin/filter_postfix_SASL_fail_dmn.sh
    TimeoutStartSec=0
    Restart=always
    StartLimitInterval=0
    
    [Install]
    WantedBy=default.target

    in /var/log/maillog sehe ich nun folgende wiederkehrende Logeinträge:
    Code:
    Sep 16 09:00:16 farm11 bash: tail: write error: Broken pipe
    Sep 16 09:00:16 farm11 bash: tail: write error
    Sep 16 09:00:16 farm11 systemd: maillogmon.service holdoff time over, scheduling restart.
    Sep 16 09:00:16 farm11 systemd: Stopped Mail Log Monitor SASL fail logins.
    Sep 16 09:00:16 farm11 systemd: Started Mail Log Monitor SASL fail logins.

    Warum ist das so und wie kann ich das vermeiden?
    Grundlegend funktioniert das Script aber die permanenten Neustarts sind nicht in Ordnung.
    Statt bei tail die Option -F statt -f zu verwenden, hat auch nix gebracht.

    lg Frank

  2. #2
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    22.054
    Ist das zufällig der Zeitpunkt, an dem logrotate läuft?

    Abgesehen davon: Du liest doch schon das Logfile Zeile für Zeile ein - warum grepst Du dann bei jeder Zeile nochmals das komplette Logfile? Ok, IO kostet nix mehr und das Logfile dürfte nicht allzu groß sein - aber mal ehrlich...
    Ich bin root - ich darf das.

  3. #3
    Registrierter Benutzer
    Registriert seit
    Sep 2020
    Beiträge
    2
    Logrotate läuft wöchentlich. So wie es aussieht liegt es daran, dass während des lesens von div. Programmen in das log geschireben wird.
    Wegen dem IO hast Du Recht, war nur ein Versuche und beende es hiermit. Habe das nun über fail2ban gelöst.

Ähnliche Themen

  1. -bash: echo: write error: Das Argument ist ungültig
    Von dsiggi im Forum System installieren und konfigurieren
    Antworten: 3
    Letzter Beitrag: 26.12.08, 15:36
  2. Transcode: Broken Pipe
    Von Biersauf im Forum Fernsehen
    Antworten: 1
    Letzter Beitrag: 03.09.05, 17:04
  3. su - Broken pipe
    Von Basti_litho im Forum Linux Allgemein
    Antworten: 0
    Letzter Beitrag: 14.04.04, 14:59
  4. ettercap broken pipe
    Von einki im Forum Anwendungen Allgemein, Software
    Antworten: 0
    Letzter Beitrag: 27.11.03, 13:09
  5. broken pipe bei transcode
    Von trimix91 im Forum Fernsehen
    Antworten: 7
    Letzter Beitrag: 21.07.03, 08:17

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •