Pergunta

Gostaria de configurar um alerta que ativa e envie um email se um dos números no lado esquerdo dessa saída for superior a 25.

A saída que eu recebo do meu 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

Acima estão os 10 principais endereços MAC com a maioria das entradas ARP (apenas IPS público) da nossa planta de cabo.

Por exemplo: O endereço MAC inferior está em 26, o que deve acionar e o alerta de email que me envia com um assunto de "alerta: informações válidas aqui"

A extensão da minha capacidade de script bash é basicamente grupos de comandos, então precisarei de ajuda real com este.

Foi útil?

Solução

Você pode tentar o seguinte 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

Redirecionar a saída do seu script para a entrada padrão deste script (normalmente com um tubo |): your_script.sh | the_aBove_script.sh

Certifique -se de alterar o endereço de e -mail fictício. Você receberá um email com a contagem de linhas no assunto e as linhas completas no corpo.

Aqui está um exemplo de corrida em que eu inseri um echo pouco antes do 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 você pode usar awk, aqui está uma solução mais curta

< message.txt awk '{ if ($1>25) exit 1 }'  ||  mailx -s "Random Subject" myemail@mydomain.com < message.txt
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top