#!/usr/bin/bash #IF=eno1 IF=enp0s25 #DRIVER=`lshw -C network | grep driver | tr ' ' '\012' | fgrep 'driver=' | cut -d'=' -f2` DRIVER=e1000e function reset_ethernet { echo "RESETING ETHERNET..." echo "STATUS BEFORE anyting:" /usr/sbin/systemctl status networking.service; /usr/sbin/ip link set $1 down /usr/sbin/ip a flush dev $1 /usr/sbin/modprobe -r $DRIVER /usr/sbin/modprobe $DRIVER /usr/sbin/ip link set $IF down echo 1 | sudo tee /sys/bus/pci/rescan /usr/sbin/ip link set $IF up echo "STATUS BEFORE systemctl restart" /usr/sbin/systemctl status networking.service; /usr/sbin/systemctl restart networking.service; echo "STATUS AFTER" /usr/sbin/systemctl status networking.service; } touch /var/log/network-keep-alive-run.log # if ! timeout 10 ping -c 3 -W 2 9.9.9.9 > /dev/null 2>&1; then echo "jh: Ping/network failed or timed out. Triggering reset." | logger -p local0.info -t network-keep-alive touch /var/log/network-keep-alive-reset.log reset_ethernet "$IF" | logger -p local0.info -t network-keep-alive -f /var/log/network-keep-alive-reset.log $IF; fi # cat /sys/module/pcie_aspm/parameters/policy # [default] performance powersave powersupersave