Question

Je voudrais configurer une alerte qui s'active et envoie un e-mail si l'un des nombres sur le côté gauche de cette sortie est supérieur à 25.

La sortie que je reçois actuelle de mon script bash:

  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

Ci-dessus se trouvent les 10 meilleures adresses MAC avec les entrées les plus ARP (IPS public uniquement) de notre usine de câble.

Par exemple: L'adresse MAC inférieure est à 26 ans, ce qui devrait déclencher et envoyer un e-mail qui m'envoie avec un sujet de "alerte: informations valides ici"

L'étendue de ma capacité de script bash est essentiellement des groupes de commandes, donc j'aurai besoin d'une véritable aide avec celle-ci.

Était-ce utile?

La solution

Vous pouvez essayer le script suivant:

#!/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

Redirigez la sortie de votre script dans l'entrée standard de ce script (généralement avec un tuyau |): your_script.sh | the_above_script.sh

Assurez-vous de modifier l'adresse e-mail factice. Vous recevrez ensuite un e-mail avec le nombre de lignes dans le sujet et les lignes complètes du corps.

Voici un exemple d'exécution où j'ai inséré un echo Juste avant le mail commande

$ 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

Si vous pouvez utiliser awk, voici une solution plus courte

< message.txt awk '{ if ($1>25) exit 1 }'  ||  mailx -s "Random Subject" myemail@mydomain.com < message.txt
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top