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! 💡
não funcionou o do modem dls dlink 2640b
Precisa verificar se o seu modem tem suporte a SNMP e se o acesso à sua máquina é permitido, incluindo saber se a senha está correta.