mirror of
https://github.com/edu4rdshl/linuxscripts.git
synced 2026-07-17 23:24:52 +00:00
52 lines
1.5 KiB
Bash
Executable file
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
|