linuxscripts/system-bin/rnetworking
2019-04-07 11:29:21 -05:00

52 lines
1.5 KiB
Bash
Executable file

#!/bin/sh
# Script to check your internet connection and if it's not OK
# then restart your network services. Make sure that you've the appropiates
# service names in the $services variable
#
# Autor: Eduard Toloza
# Define variables
services='systemd-networkd systemd-resolved randomvpn' # iwd
bond_active=$(ip -o link show type bond | awk -F': ' '{print $2}')
restart_network() {
#Check if ping command is available
if command -v ping > /dev/null; then
# Check internet connection and if not OK then restart all networking services
echo "Testing your connection..."
if ! ping -q -c 1 -W 1 9.9.9.9 > /dev/null; then
echo "Your connection is not working, restarting your network services: $services"
# Delete bond interfaces if they exists
if [ ! -z "$bond_active" ] ; then
for bond_iface in "$bond_active"; do
ip link delete $bond_iface
done
fi
# Restart services
systemctl restart $services
if [ $? -eq 0 ]; then
echo "Services restarted sucessfully, leaving."
else
echo "An error has occurred, make sure that service names are correct."
fi
else
echo "Your connection is OK"
fi
else
echo "ping command is not available, aborting."
fi
}
if [ "$UID" != 0 ]; then
echo "You don't have root permisions."
exit
fi
# Check if the f options was passed to force restart of services
if [ "$1" == "f" ]; then
systemctl restart $services
exit
fi
restart_network