Monitorando os níveis de sinal do cable modem!

Olá! Aqui estou outra vez com mais um script que supre minhas necessidades me ajudando a manter meu cable modem funcionando sempre dentro da faixa ideal de nível de sinal, de maneira simples e efetiva: Monitorando constantemente via snmp os níveis de sinal do modem e me alertando por email caso a medição esteja fora do intervalo ideal, assim posso ajustar o sinal manualmente no meu novo amplificador de sinal de ganho variável!

Esse script teve como base o script de monitorar o status do cable modem que fiz há um tempo atrás.

Segue o código em shell script, com pré-requisitos: snmp, bc e sendmail!

#!/bin/sh
# Modem Signal Levels 1.01, uma modificacao por Eduardo Nunes de:
# Modem Watcher 1.03, por Eduardo Nunes, http://blog.eduardo.nunes.net.br.
## Informações do Modem
IPModem="192.168.100.1"
SenhaSNMP="public"
## Margem de sinal
DownMin="-50" # Potência mínima de downstream (Multiplicado por 10)
DownMax="50"  # Potência máxima de downstream (Multiplicado por 10)
UpMin="150"   # Potência mínima de upstream   (Multiplicado por 10)
UpMax="480"   # Potência máxima de upstream   (Multiplicado por 10)
## Email que irá receber o alerta
Email="root"
## Busca pelas dependências
if [ -z "`which bc`" ]; then exit; fi;
if [ -z "`which snmpget`" ]; then exit; fi;
if [ -z "`which sendmail`" ]; then exit; fi;
SENDMAIL="`which sendmail` -G -i"
bc="`which bc`"
bc="`which bc`"
snmp="`which snmpget` -v2c -O qvU -c $SenhaSNMP $IPModem"
## OIDs Pesquisadas
oid_cu=".1.3.6.1.2.1.10.127.1.1.2.1.1.4"
oid_pd=".1.3.6.1.2.1.10.127.1.1.1.1.6.3"
oid_pu=".1.3.6.1.2.1.10.127.1.2.2.1.3.2"
## Início do Programa
mail=false
while true
do
  cu="`$snmp $oid_cu`"
  if [ "$cu" != "No Such Object available on this agent at this OID" ] && [ -n "$cu" ]; then
    pd="`$snmp $oid_pd`"
    pu="`$snmp $oid_pu`"
    if [ $pd -lt $DownMin ]; then
      mail=true
    else if [ $pd -gt $DownMax ]; then
      mail=true
    else if [ $pu -lt $UpMin ]; then
      mail=true
    else if [ $pu -gt $UpMax ]; then
      mail=true
    fi
    fi
    fi
    fi
    if [ $mail = true ]; then
      if [ $pu -lt "10" ]; then
        pot_up="`echo 0.$pu`"
      else
        pot_up="`echo "$pu * 0.1" | $bc`"
      fi
      if [ $pd -lt "10" ]; then
        pot_down="`echo 0.$pd`"
      else
        pot_down="`echo "$pd * 0.1" | $bc`"
      fi
      ( echo "From: \"Modem Sinal Level Monitor\" mslm@`hostname`"
      echo "To: $Email"
      echo "Date: `date`"
      echo "Message-ID: <`date +%s`@`hostname --long`>"
      echo "Subject: Verificar sinais do cable modem."
      echo ""
      echo "Potência de Download: $pot_down dBmV"
      echo "Potência de Upload: $pot_up dBmV"
        ) | $SENDMAIL -f modem_sinal_levels_monitor -- $Email"
      mail=false
    fi
  #else
  #  echo "Erro ao comunicar com o modem ou modem offline."
  fi
  sleep 86400 # aguarda 1 dia para executar o script novamente
done

Agora a conexão com a internet fica perfeita! 💡

2 ideias sobre “Monitorando os níveis de sinal do cable modem!

Escreva seu comentário: