diff options
Diffstat (limited to 'roles/install_monitoring/files/check_internet.sh')
-rwxr-xr-x | roles/install_monitoring/files/check_internet.sh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/roles/install_monitoring/files/check_internet.sh b/roles/install_monitoring/files/check_internet.sh new file mode 100755 index 0000000..5fbe0c2 --- /dev/null +++ b/roles/install_monitoring/files/check_internet.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +INTERFACE=mullvad +FAILED_FILE=/tmp/mullvad.failed +fail=false + +if [ ! -e /sys/class/net/$INTERFACE ]; then + echo "$INTERFACE interface does not exist" + fail=true +else + start_bytes=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes) + sleep 30 + end_bytes=$(cat /sys/class/net/$INTERFACE/statistics/rx_bytes) + + if [ $(($end_bytes-$start_bytes)) -lt 1000 ]; then + #echo "no traffic via $INTERFACE" + fail=true + fi +fi + +if $fail; then + systemctl is-active openvpn-client@mullvad.service > /dev/null + if [ $? -ne 0 ]; then + systemctl status openvpn-client@mullvad.service + if [ -e $FAILED_FILE ]; then + echo restart openvpn-client@mullvad.service + systemctl restart openvpn-client@mullvad.service + else + touch $FAILED_FILE + fi + fi +else + if [ -e $FAILED_FILE ]; then + rm $FAILED_FILE + fi +fi + |