#!/bin/bash
# Autor: John Llewelyn
# FB: fb.com/johnwilliam.llewelyn
# Twitter: twitter.com/JWLLEWELYN
# TLF: +584-1491-011-15
# Its use is free.
# Description: Connection Monitor for ADSL modem.
# Requirements:
# Copy this code or save to /home/administrator/ConnectionMonitor.sh
# It requires the installed packages fping beep and cron
# Comment the blacklist pcspkr snd-pcsp in /etc/modprobe.d/blacklist.conf
# Give execute permissions: chmod +x /home/administrator/ConnectionMonitor.sh
# Add this line in crontab -e with root user
# @reboot sleep 120 && /home/administrator/MonitorDeConexion.sh
#################################################################################
# SETTINGS
TEST="8.8.8.8" # TEST PING
ADAPTER1="enp4s0" # EXTERNAL ETHERNET ADAPTER
# Report
LOGFILE=/home/administrator/Documentos/ReportInternet.log
# Messages
MESSAGE1="Restoring Connectivity..."
MESSAGE2="Wait a moment please..."
MESSAGE3="No Internet connectivity."
MESSAGE4="Yes, there is Internet connectivity."
#################################################################################
# Time and Date
TODAY=$(date "+%r %d-%m-%Y")
# Show IP Public Address
IPv4ExternalAddr1=$(ip addr list $ADAPTER1 |grep "inet " |cut -d' ' -f6|cut -d/ -f1)
IPv6ExternalAddr1=$(ip addr list $ADAPTER1 |grep "inet6 " |cut -d' ' -f6|cut -d/ -f1)
# AlarmaAlarm
alarm() {
beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550$
}
# Restoring Connectivity
resolve() {
clear
echo "$MESSAGE1"
sudo ifconfig $ADAPTER1 up;sudo dhclient -r $ADAPTER1;sleep 5;sudo dhclient $ADAPTER1
echo "$MESSAGE2"
sleep 120
}
# Execution of work
while true; do
if [[ "$(fping -I $ADAPTER1 $TEST | grep 'unreachable' )" != "" ]]; then
alarm
clear
echo "================================================================================" >> ${LOGFILE}
echo "$MESSAGE3 - $TODAY" >> ${LOGFILE}
echo "$MESSAGE3 - $TODAY"
echo "================================================================================" >> ${LOGFILE}
sleep 10
resolve
else
clear
echo "================================================================================" >> ${LOGFILE}
echo "$MESSAGE4 - $TODAY - IPv4 Addr: $IPv4ExternalAddr1 - IPv6 Addr: $IPv6ExternalAddr1" >> ${LOGFILE}
echo "$MESSAGE4 - $TODAY - IPv4 Addr: $IPv4ExternalAddr1 - IPv6 Addr: $IPv6ExternalAddr1"
echo "================================================================================" >> ${LOGFILE}
sleep 120
fi
done
#!/bin/bash
# Autor: John Llewelyn
# FB: fb.com/johnwilliam.llewelyn
# Twitter: twitter.com/JWLLEWELYN
# TLF: +584-1491-011-15
# Its use is free.
# Description: Connection Monitor for ADSL modem.
# Requirements:
# Copy this code or save to /home/administrator/ConnectionMonitor.sh
# It requires the installed packages fping beep and cron
# Comment the blacklist pcspkr snd-pcsp in /etc/modprobe.d/blacklist.conf
# Give execute permissions: chmod +x /home/administrator/ConnectionMonitor.sh
# Add this line in crontab -e with root user
# @reboot sleep 120 && /home/administrator/MonitorDeConexion.sh
#################################################################################
# SETTINGS
TEST="8.8.8.8" # TEST PING
ADAPTER1="enp4s0" # EXTERNAL ETHERNET ADAPTER
# Report
LOGFILE=/home/administrator/Documentos/ReportInternet.log
# Messages
MESSAGE1="Restoring Connectivity..."
MESSAGE2="Wait a moment please..."
MESSAGE3="No Internet connectivity."
MESSAGE4="Yes, there is Internet connectivity."
#################################################################################
# Time and Date
TODAY=$(date "+%r %d-%m-%Y")
# Show IP Public Address
IPv4ExternalAddr1=$(ip addr list $ADAPTER1 |grep "inet " |cut -d' ' -f6|cut -d/ -f1)
IPv6ExternalAddr1=$(ip addr list $ADAPTER1 |grep "inet6 " |cut -d' ' -f6|cut -d/ -f1)
# Alarma
alarm() {
beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550$
}
# Restoring Connectivity
resolve() {
clear
echo "$MESSAGE1"
sudo ifconfig $ADAPTER1 up;sudo dhclient -r $ADAPTER1;sleep 5;sudo dhclient $ADAPTER1
echo "$MESSAGE2"
sleep 120
}
# Execution of work
while true; do
if [[ "$(fping -I $ADAPTER1 $TEST | grep 'unreachable' )" != "" ]]; then
alarm
clear
echo "================================================================================" >> ${LOGFILE}
echo "$MESSAGE3 - $TODAY" >> ${LOGFILE}
echo "$MESSAGE3 - $TODAY"
echo "================================================================================" >> ${LOGFILE}
sleep 10
resolve
else
clear
echo "================================================================================" >> ${LOGFILE}
echo "$MESSAGE4 - $TODAY - IPv4 Addr: $IPv4ExternalAddr1 - IPv6 Addr: $IPv6ExternalAddr1" >> ${LOGFILE}
echo "$MESSAGE4 - $TODAY - IPv4 Addr: $IPv4ExternalAddr1 - IPv6 Addr: $IPv6ExternalAddr1"
echo "================================================================================" >> ${LOGFILE}
sleep 120
fi
done
#!/bin/bash
# Autor: John Llewelyn
# FB: fb.com/johnwilliam.llewelyn
# Twitter: twitter.com/JWLLEWELYN
# TLF: +584-1491-011-15
# Its use is free.
# Description: Connection Monitor for ADSL modem.
# Requirements:
# Copy this code or save to /home/administrator/ConnectionMonitor.sh
# It requires the installed packages fping beep and cron
# Comment the blacklist pcspkr snd-pcsp in /etc/modprobe.d/blacklist.conf
# Give execute permissions: chmod +x /home/administrator/ConnectionMonitor.sh
# Add this line in crontab -e with root user
# @reboot sleep 120 && /home/administrator/MonitorDeConexion.sh
#################################################################################
# SETTINGS
TEST="8.8.8.8" # TEST PING
ADAPTER1="enp4s0" # EXTERNAL ETHERNET ADAPTER
# Report
LOGFILE=/home/administrator/Documentos/ReportInternet.log
# Messages
MESSAGE1="Restoring Connectivity..."
MESSAGE2="Wait a moment please..."
MESSAGE3="No Internet connectivity."
MESSAGE4="Yes, there is Internet connectivity."
#################################################################################
# Time and Date
TODAY=$(date "+%r %d-%m-%Y")
# Show IP Public Address
IPv4ExternalAddr1=$(ip addr list $ADAPTER1 |grep "inet " |cut -d' ' -f6|cut -d/ -f1)
IPv6ExternalAddr1=$(ip addr list $ADAPTER1 |grep "inet6 " |cut -d' ' -f6|cut -d/ -f1)
# Alarm
alarm() {
beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550$
}
# Restoring Connectivity
resolve() {
clear
echo "$MESSAGE1"
sudo ifconfig $ADAPTER1 up;sudo dhclient -r $ADAPTER1;sleep 5;sudo dhclient $ADAPTER1
echo "$MESSAGE2"
sleep 120
}
# Execution of work
while true; do
if [[ "$(fping -I $ADAPTER1 $TEST | grep 'unreachable' )" != "" ]]; then
alarm
clear
echo "================================================================================" >> ${LOGFILE}
echo "$MESSAGE3 - $TODAY" >> ${LOGFILE}
echo "$MESSAGE3 - $TODAY"
echo "================================================================================" >> ${LOGFILE}
sleep 10
resolve
else
clear
echo "================================================================================" >> ${LOGFILE}
echo "$MESSAGE4 - $TODAY - IPv4 Addr: $IPv4ExternalAddr1 - IPv6 Addr: $IPv6ExternalAddr1" >> ${LOGFILE}
echo "$MESSAGE4 - $TODAY - IPv4 Addr: $IPv4ExternalAddr1 - IPv6 Addr: $IPv6ExternalAddr1"
echo "================================================================================" >> ${LOGFILE}
sleep 120
fi
done
#!/bin/bash
# Autor: John Llewelyn
# FB: fb.com/johnwilliam.llewelyn
# Twitter: twitter.com/JWLLEWELYN
# TLF: +584-1491-011-15
# SuIts usouse esis librefree.
# Description: MonitorConnection deMonitor Conexionfor paraADSL modem ADSL.
# Requirements:
# Necesita el paquete fping paraCopy quethis puedacode comprobaror conexionsave ato Internet/home/administrator/ConnectionMonitor.sh
# NecesitaIt elrequires paquetethe beep,installed excluirpackages defping labeep listaand negracron
# modprobe:Comment pcspkrthe yblacklist pcspkr snd-pcsp in /etc/modprobe.d/blacklist.conf
# Necesita el paquete chrontab para crear unaGive tareaexecute alpermissions: iniciarchmod el+x equipo/home/administrator/ConnectionMonitor. ejemplo:sh
# AgregarAdd estathis linealine enin crontab -e con usuariowith root user
# @reboot sleep 120 && /home/administrator/Documentos/MonitorDeConexion.sh
#################################################################################
# AjustesSETTINGS
HOST="8TEST="8.8.8.8"
LINE1="eth0"
# LINE2="eth1"
TEST PING
#ADAPTER1="enp4s0" Formato Hora y # Fecha
current_time=$(dateEXTERNAL "+%rETHERNET %d-%m-%Y")ADAPTER
# Reporte de SeguimientoReport
LOG=LOGFILE=/home/administrator/Documentos/ReporteInternetReportInternet.log
# MensajesMessages
MESSAGE1="RestableciendoMESSAGE1="Restoring ConectividadConnectivity..."
MESSAGE2="EspereMESSAGE2="Wait una momentomoment please..."
MESSAGE3="No Hay Conectividad a Internet connectivity."
MESSAGE4="Si HayMESSAGE4="Yes, Conectividadthere ais Internet connectivity."
#################################################################################
# Mostrar DireccionTime IPand PublicaDate
IPv4ExternalAddr1=$TODAY=$(ip addr list $LINE1 |grep "inet " |cut -d' 'date -f6|cut"+%r %d-d/ %m-f1%Y")
IPv6ExternalAddr1=$(ip addr list $LINE2 |grep "inet6 " |cut -d'
# 'Show -f6|cutIP -d/Public -f1)Address
# IPv4ExternalAddr2=$IPv4ExternalAddr1=$(ip addr list $LINE1$ADAPTER1 |grep "inet " |cut -d' ' -f6|cut -d/ -f1)
# IPv6ExternalAddr2=$IPv6ExternalAddr1=$(ip addr list $LINE2$ADAPTER1 |grep "inet6 " |cut -d' ' -f6|cut -d/ -f1)
# Alarma
alarm() {
beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550$
}
# Restableciendo laRestoring ConectividadConnectivity
resolve() {
clear
echo "$MESSAGE1"
sudo ifconfig $LINE1 up;sudo dhclient -r $LINE1;sleep 5;sudo dhclient $LINE1
# sudo ifconfig $LINE2$ADAPTER1 up;sudo dhclient -r $LINE2;sleep$ADAPTER1;sleep 5;sudo dhclient $LINE2$ADAPTER1
echo "$MESSAGE2"
sleep 120
}
# EjecucionExecution deof Trabajowork
while true; do
if [[ "$(fping -I $LINE1$ADAPTER1 $HOST$TEST | grep 'unreachable' )" != "" ]]; then
alarm
clear
echo "================================================================================" >> ${LOGFILE}
echo "$MESSAGE3"
"$MESSAGE3 - $TODAY" echo "$current_time"
echo "================================================================================"
echo "$MESSAGE3 - $current_time" >> $LOG
sleep 10
resolve
else
clear >> ${LOGFILE}
echo "================================================================================""$MESSAGE3 - $TODAY"
echo "$MESSAGE4""================================================================================" >> ${LOGFILE}
echosleep "$current_time"10
echoresolve
"IPv4 Addr: $IPv4ExternalAddr1 -else
IPv6 Addr: $IPv6ExternalAddr1"
clear
# echo "IPv4 Addr: $IPv4ExternalAddr2 -echo IPv6"================================================================================" Addr: $IPv6ExternalAddr2" >> ${LOGFILE}
echo "================================================================================""$MESSAGE4 - $TODAY - IPv4 Addr: $IPv4ExternalAddr1 - IPv6 Addr: $IPv6ExternalAddr1" >> ${LOGFILE}
echo "$MESSAGE4 - $current_time$TODAY - IPv4 Addr: $IPv4ExternalAddr1 - IPv6 Addr: $IPv6ExternalAddr1"
echo "================================================================================" >> $LOG${LOGFILE}
sleep 120
fi
done
#!/bin/bash
# Autor: John Llewelyn
# FB: fb.com/johnwilliam.llewelyn
# Twitter: twitter.com/JWLLEWELYN
# TLF: +584-1491-011-15
# Su uso es libre.
# Description: Monitor de Conexion para modem ADSL.
# Requirements:
# Necesita el paquete fping para que pueda comprobar conexion a Internet.
# Necesita el paquete beep, excluir de la lista negra modprobe: pcspkr y snd-pcsp.
# Necesita el paquete chrontab para crear una tarea al iniciar el equipo. ejemplo:
# Agregar esta linea en crontab -e con usuario root
# @reboot sleep 120 && /home/administrator/Documentos/MonitorDeConexion.sh
# Ajustes
HOST="8.8.8.8"
LINE1="eth0"
# LINE2="eth1"
# Formato Hora y Fecha
current_time=$(date "+%r %d-%m-%Y")
# Reporte de Seguimiento
LOG=/home/administrator/Documentos/ReporteInternet.log
# Mensajes
MESSAGE1="Restableciendo Conectividad..."
MESSAGE2="Espere un momento..."
MESSAGE3="No Hay Conectividad a Internet."
MESSAGE4="Si Hay Conectividad a Internet."
# Mostrar Direccion IP Publica
IPv4ExternalAddr1=$(ip addr list $LINE1 |grep "inet " |cut -d' ' -f6|cut -d/ -f1)
IPv6ExternalAddr1=$(ip addr list $LINE2 |grep "inet6 " |cut -d' ' -f6|cut -d/ -f1)
# IPv4ExternalAddr2=$(ip addr list $LINE1 |grep "inet " |cut -d' ' -f6|cut -d/ -f1)
# IPv6ExternalAddr2=$(ip addr list $LINE2 |grep "inet6 " |cut -d' ' -f6|cut -d/ -f1)
# Alarma
alarm() {
beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550$
}
# Restableciendo la Conectividad
resolve() {
clear
echo "$MESSAGE1"
sudo ifconfig $LINE1 up;sudo dhclient -r $LINE1;sleep 5;sudo dhclient $LINE1
# sudo ifconfig $LINE2 up;sudo dhclient -r $LINE2;sleep 5;sudo dhclient $LINE2
echo "$MESSAGE2"
sleep 120
}
# Ejecucion de Trabajo
while true; do
if [[ "$(fping -I $LINE1 $HOST | grep 'unreachable' )" != "" ]]; then
alarm
clear
echo "================================================================================"
echo "$MESSAGE3"
echo "$current_time"
echo "================================================================================"
echo "$MESSAGE3 - $current_time" >> $LOG
sleep 10
resolve
else
clear
echo "================================================================================"
echo "$MESSAGE4"
echo "$current_time"
echo "IPv4 Addr: $IPv4ExternalAddr1 - IPv6 Addr: $IPv6ExternalAddr1"
# echo "IPv4 Addr: $IPv4ExternalAddr2 - IPv6 Addr: $IPv6ExternalAddr2"
echo "================================================================================"
echo "$MESSAGE4 - $current_time - IPv4 Addr: $IPv4ExternalAddr1 - IPv6 Addr: $IPv6ExternalAddr1" >> $LOG
sleep 120
fi
done
#!/bin/bash
# Autor: John Llewelyn
# FB: fb.com/johnwilliam.llewelyn
# Twitter: twitter.com/JWLLEWELYN
# TLF: +584-1491-011-15
# Its use is free.
# Description: Connection Monitor for ADSL modem.
# Requirements:
# Copy this code or save to /home/administrator/ConnectionMonitor.sh
# It requires the installed packages fping beep and cron
# Comment the blacklist pcspkr snd-pcsp in /etc/modprobe.d/blacklist.conf
# Give execute permissions: chmod +x /home/administrator/ConnectionMonitor.sh
# Add this line in crontab -e with root user
# @reboot sleep 120 && /home/administrator/MonitorDeConexion.sh
#################################################################################
# SETTINGS
TEST="8.8.8.8" # TEST PING
ADAPTER1="enp4s0" # EXTERNAL ETHERNET ADAPTER
# Report
LOGFILE=/home/administrator/Documentos/ReportInternet.log
# Messages
MESSAGE1="Restoring Connectivity..."
MESSAGE2="Wait a moment please..."
MESSAGE3="No Internet connectivity."
MESSAGE4="Yes, there is Internet connectivity."
#################################################################################
# Time and Date
TODAY=$(date "+%r %d-%m-%Y")
# Show IP Public Address
IPv4ExternalAddr1=$(ip addr list $ADAPTER1 |grep "inet " |cut -d' ' -f6|cut -d/ -f1)
IPv6ExternalAddr1=$(ip addr list $ADAPTER1 |grep "inet6 " |cut -d' ' -f6|cut -d/ -f1)
# Alarma
alarm() {
beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550$
}
# Restoring Connectivity
resolve() {
clear
echo "$MESSAGE1"
sudo ifconfig $ADAPTER1 up;sudo dhclient -r $ADAPTER1;sleep 5;sudo dhclient $ADAPTER1
echo "$MESSAGE2"
sleep 120
}
# Execution of work
while true; do
if [[ "$(fping -I $ADAPTER1 $TEST | grep 'unreachable' )" != "" ]]; then
alarm
clear
echo "================================================================================" >> ${LOGFILE}
echo "$MESSAGE3 - $TODAY" >> ${LOGFILE}
echo "$MESSAGE3 - $TODAY"
echo "================================================================================" >> ${LOGFILE}
sleep 10
resolve
else
clear
echo "================================================================================" >> ${LOGFILE}
echo "$MESSAGE4 - $TODAY - IPv4 Addr: $IPv4ExternalAddr1 - IPv6 Addr: $IPv6ExternalAddr1" >> ${LOGFILE}
echo "$MESSAGE4 - $TODAY - IPv4 Addr: $IPv4ExternalAddr1 - IPv6 Addr: $IPv6ExternalAddr1"
echo "================================================================================" >> ${LOGFILE}
sleep 120
fi
done
thanks to your contributions from each user and other web, I managed to complete this script in 3 days. and I will leave it free for its use.
this script automates the renewal of the ip address when connection is lost, it does so persistently.
#!/bin/bash
# Autor: John Llewelyn
# FB: fb.com/johnwilliam.llewelyn
# Twitter: twitter.com/JWLLEWELYN
# TLF: +584-1491-011-15
# Su uso es libre.
# Description: Monitor de Conexion para modem ADSL.
# Requirements:
# Necesita el paquete fping para que pueda comprobar conexion a Internet.
# Necesita el paquete beep, excluir de la lista negra modprobe: pcspkr y snd-pcsp.
# Necesita el paquete chrontab para crear una tarea al iniciar el equipo. ejemplo:
# Agregar esta linea en crontab -e con usuario root
# @reboot sleep 120 && /home/administrator/Documentos/MonitorDeConexion.sh
# Ajustes
HOST="8.8.8.8"
LINE1="eth0"
# LINE2="eth1"
# Formato Hora y Fecha
current_time=$(date "+%r %d-%m-%Y")
# Reporte de Seguimiento
LOG=/home/administrator/Documentos/ReporteInternet.log
# Mensajes
MESSAGE1="Restableciendo Conectividad..."
MESSAGE2="Espere un momento..."
MESSAGE3="No Hay Conectividad a Internet."
MESSAGE4="Si Hay Conectividad a Internet."
# Mostrar Direccion IP Publica
IPv4ExternalAddr1=$(ip addr list $LINE1 |grep "inet " |cut -d' ' -f6|cut -d/ -f1)
IPv6ExternalAddr1=$(ip addr list $LINE2 |grep "inet6 " |cut -d' ' -f6|cut -d/ -f1)
# IPv4ExternalAddr2=$(ip addr list $LINE1 |grep "inet " |cut -d' ' -f6|cut -d/ -f1)
# IPv6ExternalAddr2=$(ip addr list $LINE2 |grep "inet6 " |cut -d' ' -f6|cut -d/ -f1)
# Alarma
alarm() {
beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550 -l 200;beep -f 1500 -l 200;beep -f 1550$
}
# Restableciendo la Conectividad
resolve() {
clear
echo "$MESSAGE1"
sudo ifconfig $LINE1 up;sudo dhclient -r $LINE1;sleep 5;sudo dhclient $LINE1
# sudo ifconfig $LINE2 up;sudo dhclient -r $LINE2;sleep 5;sudo dhclient $LINE2
echo "$MESSAGE2"
sleep 120
}
# Ejecucion de Trabajo
while true; do
if [[ "$(fping -I $LINE1 $HOST | grep 'unreachable' )" != "" ]]; then
alarm
clear
echo "================================================================================"
echo "$MESSAGE3"
echo "$current_time"
echo "================================================================================"
echo "$MESSAGE3 - $current_time" >> $LOG
sleep 10
resolve
else
clear
echo "================================================================================"
echo "$MESSAGE4"
echo "$current_time"
echo "IPv4 Addr: $IPv4ExternalAddr1 - IPv6 Addr: $IPv6ExternalAddr1"
# echo "IPv4 Addr: $IPv4ExternalAddr2 - IPv6 Addr: $IPv6ExternalAddr2"
echo "================================================================================"
echo "$MESSAGE4 - $current_time - IPv4 Addr: $IPv4ExternalAddr1 - IPv6 Addr: $IPv6ExternalAddr1" >> $LOG
sleep 120
fi
done
pastebin: https://pastebin.com/wfSkpgKA
lang-bash