39 lines
697 B
Bash
Executable File
39 lines
697 B
Bash
Executable File
#! /bin/sh
|
|
|
|
is_modem_available()
|
|
{
|
|
if [ -z "$(lsusb | grep "2c7c:0125")" ]; then
|
|
return 1
|
|
fi
|
|
|
|
return 0
|
|
}
|
|
|
|
is_data_available()
|
|
{
|
|
if ! nmcli c show --active | grep -e internet -e gsm > /dev/null; then
|
|
return 1
|
|
fi
|
|
|
|
return 0
|
|
}
|
|
|
|
TRY=0
|
|
while :; do
|
|
if ! is_modem_available ; then
|
|
TRY=$((TRY + 1))
|
|
echo $(date) Restarting modem, $TRY try
|
|
systemctl restart eg25-manager
|
|
systemd-inhibit --what=sleep --why="Modem reset" sleep 60
|
|
elif [ $TRY -ne 0 ]; then
|
|
echo $(date): Modem restarted successfully
|
|
TRY=0
|
|
elif ! is_data_available; then
|
|
echo $(date): Restarting mobile data
|
|
systemd-inhibit --what=sleep --why="Restart mobile data" sleep 5
|
|
nmcli c up internet
|
|
fi
|
|
|
|
sleep 5
|
|
done
|