Domanda

Vorrei impostare un avviso che si attiva e invia un'e -mail se uno dei numeri sul lato sinistro di questo output è superiore a 25.

L'output i corrente riceve dal mio 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

Sopra sono i primi 10 indirizzi MAC con le voci più ARP (solo IP pubbliche) dal nostro impianto via cavo.

Per esempio: L'indirizzo MAC inferiore è a 26 che dovrebbe attivare e e -mail Alert che mi invia con un argomento di "Avviso: informazioni valide qui"

L'entità della mia capacità di scripting bash è fondamentalmente gruppi di comandi, quindi avrò bisogno di un vero aiuto con questo.

È stato utile?

Soluzione

Puoi provare il seguente script:

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

Reindirizza l'output dallo script nell'input standard di questo script (in genere con un tubo |): your_script.sh | The_above_script.sh

Assicurati di modificare l'indirizzo email fittizio. Riceverai quindi un'e -mail con il conteggio delle linee nell'argomento e le linee complete nel corpo.

Ecco un esempio di esecuzione in cui ho inserito un echo Poco prima del mail comando

$ 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

Se puoi usare awk, ecco una soluzione più breve

< message.txt awk '{ if ($1>25) exit 1 }'  ||  mailx -s "Random Subject" myemail@mydomain.com < message.txt
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top