Repository URL to install this package:
Version:
1.2.0-1 ▾
|
#!/usr/bin/env bash
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as 'root'"
exit 1
fi
declare -r project_dir=/usr/local/lib/network-rescue
declare -r log_file=/var/log/network-rescue/modem-reset-state.log
TODAY=$(date +%Y%m%d)
THISHOUR=$(date +%H:%M:%S)
echo "modem-reset-retry.sh started on ${TODAY} ${THISHOUR}"
declare -r conn_type=$("${project_dir}/conn-type.sh")
if [ "${conn_type}" == "ETHERNET" ] || [ "${conn_type}" == "WLAN" ]; then
echo "Exiting, connection type is ${conn_type}"
exit 0
fi
echo "Connection type is ${conn_type}"
LASTSTATUS=`tail -c 1 $log_file`
rebootit() {
CURRENTTIME=$(date +%H:%M)
if [[ "$CURRENTTIME" > "22:00" ]] || [[ "$CURRENTTIME" < "07:00" ]]; then
TODAY=$(date +%Y%m%d)
THISHOUR=$(date +%H:%M:%S)
echo "Non-working hours. Reboot."
printf "\n$TODAY $THISHOUR:reboot-retry:0" >> $log_file
logger Rebooting OS by modem-reset-retry.sh due to no access to Internet
reboot
fi
}
if [ $LASTSTATUS = '0' ]; then
echo "Network still disconnected. Retry #1"
printf "\n$TODAY $THISHOUR:init-retry:2" >> $log_file
nmcli c up rnd
sleep 300
TODAY=$(date +%Y%m%d)
THISHOUR=$(date +%H:%M:%S)
if nc -zw1 google.com 443; then
echo "Network alive"
printf "\n$TODAY $THISHOUR:nmcli-retry:1" >> $log_file
else
echo "Network still disconnected. Retry #2"
printf "\n$TODAY $THISHOUR:nmcli-retry:3" >> $log_file
nmcli r wwan off
sync
sleep 5
nmcli r wwan on
sync
sleep 10
nmcli c up rnd
sleep 300
TODAY=$(date +%Y%m%d)
THISHOUR=$(date +%H:%M:%S)
if nc -zw1 google.com 443; then
echo "Network alive"
printf "\n$TODAY $THISHOUR:nmcli-wwan-onoff-retry:1" >> $log_file
else
echo "Network still disconnected. Retry #3"
printf "\n$TODAY $THISHOUR:nmcli-wwan-onoff-retry:4" >> $log_file
modem_dbus=`mmcli -L | grep freedesktop | cut -d'/' -f6 | awk '{print $1}'`
if [ ! -z "$modem_dbus" ]; then
mmcli -m $modem_dbus -r
echo "Wait for 300 seconds..."
sleep 300
else
echo No modem found using mmcli
fi
TODAY=$(date +%Y%m%d)
THISHOUR=$(date +%H:%M:%S)
if nc -zw1 google.com 443; then
echo "Network alive"
printf "\n$TODAY $THISHOUR:mmcli-retry:1" >> $log_file
else
echo "Network cannot online. End of retry. Try reboot."
printf "\n$TODAY $THISHOUR:mmcli-retry:0" >> $log_file
rebootit
fi
fi
fi
else
echo "Network alive"
printf "\n$TODAY $THISHOUR:init-retry:1" >> $log_file
fi