Pregunta

Me gustaría configurar una alerta que se active y envíe un correo electrónico si uno de los números en el lado izquierdo de esta salida es superior a 25.

La salida que recibe actualmente de mi 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

Arriba están las 10 direcciones MAC principales con la mayoría de las entradas ARP (solo IP públicas) de nuestra planta de cable.

Por ejemplo: La dirección MAC inferior está en 26, que debe activar y alerta de correo electrónico que me envía con un tema de "Alerta: información válida aquí"

El alcance de mi capacidad de secuencia de comandos de bash es básicamente grupos de comandos, por lo que necesitaré una ayuda real con este.

¿Fue útil?

Solución

Puedes probar el siguiente 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

Redirige la salida de su script a la entrada estándar de este script (generalmente con una tubería |): your_script.sh | the_above_script.sh

Asegúrese de cambiar la dirección de correo electrónico ficticia. Luego recibirá un correo electrónico con el recuento de líneas en el tema y las líneas completas en el cuerpo.

Aquí hay un ejemplo de ejecución donde inserté un echo Justo antes del mail dominio

$ 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 puedes usar awk, aquí hay una solución más corta

< message.txt awk '{ if ($1>25) exit 1 }'  ||  mailx -s "Random Subject" myemail@mydomain.com < message.txt
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top