Skip to main content
deleted 1 character in body
Source Link
#!/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
deleted 104 characters in body
Source Link
#!/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
Source Link

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