Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/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" # Ping Test
- ADAPTER1="enp4s0" # External Ethernet Adapter
- TIMECHECK="120" # Time to check the internet connection
- # 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}
- # killall -SIGUSR2 udhcpc;sleep 5;killall -SIGUSR1 udhcpc
- 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 ${TIMECHECK}
- fi
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement