PHP скрипт для переключения шлюза интернета в LINUX

8727633Скрипт пингует каждые несколько секунд яндекс, если тот не отзывается, переключает шлюз интернета на другого поставщика.
Сотовый интернет всё же дорогой и чаще лимитируем, поэтому не даём висеть вечно на 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);
Запись опубликована в рубрике Linux, PHP, Программирование. Добавьте в закладки постоянную ссылку.

Добавить комментарий