Probleme mit awk...

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von wunderhorn, 01.02.2008.

  1. #1 wunderhorn, 01.02.2008
    wunderhorn

    wunderhorn Mitglied

    Dabei seit:
    01.05.2005
    Beiträge:
    31
    Zustimmungen:
    0
    Hallo zusammen,

    wir setzen gerade einen HylaFAX-Server auf. Mittlerweile läuft dieser ganz rund. Einzig der SMS-Versand per Mail funktioniert noch nicht. Um dieses Feature einzurichten habe ich hier eine Anleitung gefunden. Diese auch gewissenhaft abgearbeitet. Leider läuft das Skript bei uns nicht richtig.
    Code:
    SENDPAGE=/usr/bin/sendpage
    PAGERPIN=$1
    awk '
    BEGIN { inhdr=1; MAXCHRS=127 ; SMS = "" }
    inhdr==0 { strctr+=length($0)
                    if (strctr>MAXCHRS) {
                            print substr(SMS,1,MAXCHRS)
                            exit
                    }
                    SMS=SMS " " $0
                    linectr++; next }
    NF>1 && inhdr==1 { if ($1 == "Subject:") {
                    SUBJ=$0
                    sub("Subject: ","",SUBJ)
                    SMS= SUBJ
                    next } }
    NF>1 && inhdr==1 { if ($1 ~ /[A-Z]..*: ..*$/) inhdr=1; next }
    NF>1 && inhdr==1 { if ($1 == "" ) inhdr=1; next }
    NF==0 && inhdr==1 { inhdr=0; linectr=0 }
    ' |  tr -d '\177-\377'  | $SENDPAGE -p $PAGERPIN
    Komischerweise ist der Output des Skripts immer leer. ?( Postfix piped in das Skript den folgenden Mail-Datenstrom.
    Code:
    Received: by faxserver (Postfix, from userid 0)
            id 73FE84B7D; Fri,  1 Feb 2008 08:33:53 +0100 (CET)
    To: 01234567890@sms
    Subject: Betreff
    Message-Id: <20080201073353.73FE84B7D@faxserver>
    Date: Fri,  1 Feb 2008 08:33:53 +0100 (CET)
    From: root@faxserver (root)
    
    Hier steht der Text, den wir gerne per SMS verschicken moechten.
    
    Ich "wurschtle" jetzt schon seit zwei Tagen an dem Problem rum. Und bin total frustriert, dass ich es nicht hinbekommen. :( Vielleicht sieht ja von euch jemand, wo das Problem liegt.
    Über Tips würde ich mich sehr freuen.

    Viele Grüße

    Christian
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Wolfgang, 01.02.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Was passiert, wenn du das auf STDOUT ausgibst?
    Wie sieht der Eintrag in der main.cf aus?
    Von welcher Shell reden wir?
    Welches OS?
    gibt es Fehlermeldungen?

    IMHO fehlen hier Klammern.
    Code:
    NF>1 && inhdr==1 { if ($1 ~ /[A-Z]..*: ..*$/) inhdr=1; next }
    NF>1 && inhdr==1 { if ($1 == "" ) inhdr=1; next }
    [/code]
    Syntax
    if (Ausdruck){ command}

    Gruß Wolfgang
     
  4. #3 wunderhorn, 04.02.2008
    wunderhorn

    wunderhorn Mitglied

    Dabei seit:
    01.05.2005
    Beiträge:
    31
    Zustimmungen:
    0
    Erledigt: Probleme mit awk...

    Hallo Wolfgang,

    vielen Dank für die Antwort. Es ging um Hylafax 4.4.0 unter Debian Etch. Die Ausgabe des Skripts war -- ich hatte es geschrieben ;) -- immer leer. Auch wenn ich nicht pipe. Deshalb hatte ich ja auch die Mail-Datei mit hinzugefügt. Eine Fehlermeldung kam auch nicht.

    Ich habe am Wochenende noch etwas herumexperimentiert. Und musste feststellen, dass der Autor des Skripts irgendwie die Abbruchbedingung sehr unsauber gesetzt hatte. Das Skript gab nur eine Ausgabe, wenn bestimmte Zeilen länger als 127 Zeilen waren. Und dann war die Ausgabe auch nicht richtig, bzw. nicht so wie erwartet oder gewollt. :(
    Ich habe es überarbeitet und gleichzeitig vereinfacht. Sobald ein Betreff gesetzt wird, wird dieser vor den Mailtext gesetzt und mit ":" abgetrennt. Läuft bei uns genial gut. :))
    Code:
    ## Überarbeitetes Skript. Ursprünglich von http://www.hylafax.org/archive/2000-09/msg00347.php
    SENDPAGE=/usr/bin/sendpage
    PAGERPIN=$1
    awk '
    BEGIN { inhdr=1; MAXCHRS=127 ; SMS = "" }
    inhdr==0 { SMS=SMS " " $0; next }
    NF>1 && inhdr==1 { if ($1 == "Subject:") {
                     SUBJ=$0
                     sub("Subject: ","",SUBJ)
                     if ($2 != "") {
                             SMS=SUBJ ":"
                     }
                                     next } }
    NF>1 && inhdr==1 { if ($1 ~ /[A-Z]..*: ..*$/) inhdr=1; next }
    NF>1 && inhdr==1 { if ($1 == "" ) inhdr=1; next }
    NF==0 && inhdr==1 { inhdr=0; linectr=0 }
    END {print substr(SMS,1,MAXCHRS) }
    ' |  tr -d '\177-\377'  | $SENDPAGE -p $PAGERPIN
    
    Das einzige was mich nicht so gefällt, ist das die Umlaute "zerstückelt" werden. Aber da werde ich einen extra Thread aufmachen.

    Viele Grüße

    Christian

    PS. Die ausführlichere Doku deshalb, falls wieder mal jemand den Bug im Skript sucht. ;-)
     
  5. #4 Wolfgang, 04.02.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Wenn deine Umlaute nicht richtig dargestellt werden, musst du vorher die richtige Locale setzen.

    Gruß Wolfgang
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Probleme mit awk...

Die Seite wird geladen...

Probleme mit awk... - Ähnliche Themen

  1. grub-pc Probleme bei upgrade

    grub-pc Probleme bei upgrade: Hallo, ich habe beim dist-upgrade folgendes Problem: ---------- Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt. Trigger für...
  2. Probleme mit YUM

    Probleme mit YUM: Hallo, ich habe CentOs 7 als Dualboot mit Windows 7 auf einen Dell Latitude E5510 installiert. Dies hat soweit auch alles geklappt. Leider habe...
  3. Forscher analysieren Durchsatzprobleme im Linux-Scheduler

    Forscher analysieren Durchsatzprobleme im Linux-Scheduler: Eine Gruppe von Forschern hat Fälle identifiziert, in denen der Scheduler im Linux-Kernel falsche Entscheidungen trifft und die CPUs nicht so gut...
  4. München: LiMux als Sündenbock für IT-Probleme?

    München: LiMux als Sündenbock für IT-Probleme?: Im Münchner Stadtrat soll später in diesem Jahr erneut über den Einsatz von Linux in der Stadtverwaltung diskutiert werden. Die Grünen vermuten,...
  5. BSI-Audit findet keine akuten Probleme in OpenSSL

    BSI-Audit findet keine akuten Probleme in OpenSSL: Das Bundesamt für Sicherheit in der Informationstechnik hat OpenSSL auf seine Sicherheit untersuchen lassen. Die Analyse zeigt vor allem, dass die...