Frage

Ich möchte eine Warnung einrichten, die eine E -Mail aktiviert und sendet, wenn eine der Zahlen auf der linken Seite dieser Ausgabe höher als 25 ist.

Die Ausgabe, die ich aktuell von meinem Bash -Skript erhält:

  3 00:05:00:E7:5A:EA
  3 00:0C:85:F2:F8:4E
  3 00:11:92:21:87:14
  3 00:17:C5:69:49:A1
  3 00:1A:E3:8C:E4:1A
  3 00:1D:A2:E7:BC:24
  3 00:26:98:14:91:05
  3 44:03:A7:C0:0D:26
 13 C0:62:6B:AE:6A:5D
 26 E8:B7:48:36:8C:AE

Oben finden Sie die Top 10 MAC -Adressen mit den meisten ARP -Einträgen (nur öffentlicher IPS) aus unserem Kabelwerk.

Zum Beispiel: Die untere MAC -Adresse liegt bei 26, die sich auslösen und per E -Mail -Warnmeldung auslösen und an mich mit einem Thema "Alarm: Gültige Informationen hier" senden sollten.

Das Ausmaß meiner Bash -Scripting -Fähigkeit ist im Grunde genommen Gruppen von Befehlen, daher brauche ich echte Hilfe bei diesem.

War es hilfreich?

Lösung

Sie können das folgende Skript ausprobieren:

#!/bin/bash

msg=
count=0
while read line; do
    read freq mac <<< $line
    if (( $freq > 25 )) ; then 
        (( count ++ ))
        msg="$msg$line"$'\n'
    fi
done 
mail your@email.com -s "Alert: $count mac with more than 25 entries" <<< $msg

Umleiten Sie die Ausgabe von Ihrem Skript in die Standardeingabe dieses Skripts (normalerweise mit einer Pipe |): your_script.sh | the_above_script.sh

Stellen Sie sicher, dass Sie die Dummy -E -Mail -Adresse ändern. Sie erhalten dann eine E -Mail mit der Zeilenzahl im Motiv und den vollständigen Zeilen im Körper.

Hier ist ein Beispiellauf, in dem ich eine eingefügt habe echo Kurz vor dem mail Befehl

$ cat message
  3 00:05:00:E7:5A:EA
  3 00:0C:85:F2:F8:4E
  3 00:11:92:21:87:14
  3 00:17:C5:69:49:A1
  3 00:1A:E3:8C:E4:1A
  3 00:1D:A2:E7:BC:24
  3 00:26:98:14:91:05
  3 44:03:A7:C0:0D:26
 13 C0:62:6B:AE:6A:5D
 26 E8:B7:48:36:8C:AE
$ ./t.sh < message
mail your@email.com -s Alert: 1 mac with more than 25 entries <<< 26 E8:B7:48:36:8C:AE

Wenn Sie verwenden können awk, Hier ist eine kürzere Lösung

< message.txt awk '{ if ($1>25) exit 1 }'  ||  mailx -s "Random Subject" myemail@mydomain.com < message.txt
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top