Ubuntu
Od kilku miesięcy firma aero2, na mocy licencji na pasmo częstotliwości 900 MHz, umożliwia bezpłatne korzystanie z internetu w technologii HSDPA i LTE. Przepustowość takiego połączenia ograniczona jest do 256 kb/s, a długość sesji do godziny. Do podstawowych i prostych działań w sieci taka przepustowość powinna wystarczyć, szczególnie gdy połączy się ją z lokalnym serwerem cache, jak squid. Problemem może być natomiast cogodzinne zrywanie sesji. Jest na to jednak pewien sposób sprawdzony na Ubuntu 11.10 Onereic Ocelot.
#!/bin/bash
ping -c 1 8.8.8.8 >/dev/null
ret=$?
if [ "${ret}" -eq "1" ]; then
nmcli con down id aero2
else
exit
fi
sleep 8
ping -c 1 8.8.8.8 >/dev/null
ret=$?
if [ "${ret}" -eq "1" ]; then
nmcli con down id aero2
nmcli con up id aero2
fi
Skrypt ten sprawdza najpierw, czy jest połączenie z internetem. Do tego celu wykorzystuje jeden z serwerów DNS Google, o adresie IP 8.8.8.8. Można w tym miejscu wybrać dowolny inny serwer odpowiadający na pingi. Jeśli komenda ping zwróci błąd, skrypt próbuje wyłączyć połączenie z aero2 (aero2 w tym skrypcie jest nazwą połączenia w NetworkManagerze). Następnie czeka 8 sekund i sprawdza połączenie ponownie. Jeśli w tym czasie Network Manager nie nawiązał utraconego połączenia automatycznie, skrypt próbuje ponownie zakończyć to połączenie i następnie ręcznie się połączyć.
U mnie skrypt niestety nie działa. Podejrzewam, że przyczyną jest iż po utraceniu połączenia sytem nie może podłączyć z powrtoem modemu:
promyk@T61:~/skrypty$ nmcli con up id aero2
Błąd: nie odnaleziono odpowiedniego urządzenia: nie odnaleziono urządzenia dla połączenia "aero2"
promyk@T61:~/skrypty$ nmcli con up id aero2
Błąd: nie odnaleziono odpowiedniego urządzenia: nie odnaleziono urządzenia dla połączenia "aero2"
promyk@T61:~/skrypty$ nmcli dev status
URZĄDZENIE TYP STAN
eth0 802-3-ethernet niedostępne
wlan0 802-11-wireless niedostępne
ttyUSB0 gsm rozłączono "