Скрипт пингует каждые несколько секунд яндекс, если тот не отзывается, переключает шлюз интернета на другого поставщика.
Сотовый интернет всё же дорогой и чаще лимитируем, поэтому не даём висеть вечно на 4G и каждый час в 05 минут переводим на наземный.
$maingw = "192.168.1.1"; // белтелеком $secgw = "192.168.1.254"; // 4G MTS do{ $inet = false; exec("ping ya.ru -c 3", $out); foreach($out as $v){ if(strpos($v, ", 0% packet loss")){ $inet = true; break; } } if(!$inet){ // если нет инета, смотрим какой шлюз? выбираем другой exec("route -n", $out); if(strpos($out[2], $maingw)){ exec("ip route del default via 192.168.1.1"); exec("ip route add default via 192.168.1.254"); echo "No inet. Switch gateway 192.168.1.254\n"; }else{ exec("ip route del default via 192.168.1.254"); exec("ip route add default via 192.168.1.1"); echo "No inet. Switch gateway 192.168.1.1\n"; } }elseif(date("m")=="05"){ // каждый новый час делаем основной шлюз exec("route -n", $out); if(strpos($out[2], $secgw)){ exec("ip route del default via 192.168.1.254"); exec("ip route add default via 192.168.1.1"); echo "Switch default gateway 192.168.1.1\n"; } } sleep(5); }while(1);