Скрипт для набора 3g ссылки в случае, если сеть не работает?
Я хочу настроить маршрутизатор Ubuntu с автоматическим переключением на канал 3G. Я, вероятно, могу настроить маршрутизацию и агрегацию каналов, но я не знаю, как отслеживать состояние канала и набирать канал 3G, если он не работает. Указатели на полезные ресурсы с благодарностью.
1 ответ
Я не уверен, что есть что-то, что могло бы сделать это для вас... Однако, вы могли бы, с помощью небольшого количества сценариев, немного погуглить, собрать воедино сценарий, который:
- Каждые 10 минут пингует Google с тайм-аутом в 2 секунды и только с вашего "фиксированного" соединения (не 3G) (используйте
-I
флаг). - Если эхо-запрос успешен, и вы на фиксированном соединении, ничего не делайте.
- Если вы подключены к сети 3G, и связь по фиксированному соединению работает, отключите адаптер 3G.
- Если это не удается, откройте адаптер 3G.
Вот моя быстрая попытка:
#! /bin/bash
CONNECTION=1
main()
{
if ping -q -c 1 -w 1 -I eth0 google.com > /dev/null ; then
echo "Connection is ok!"
if [ $CONNECTION -eq 0 ] ; then
# take the 3g connection down
ifconfig 3GADAPTERNAME down
CONNECTION=1
fi
else
echo "Connection is dead! Long live the connection!"
if [ $CONNECTION -eq 1 ] ; then
# turn the 3g connection on
ifconfig 3GADAPTERNAME up
CONNECTION=0
fi
fi
sleep 5
main
}
main
Очевидно заменить 3GADAPTERNAME
с именем вашего адаптера. выключить eth0
если ваше основное соединение отличается. Убедитесь, что он установлен для автоматического подключения (поэтому, когда это разрешено, он делает). Скрипт должен быть запущен от имени пользователя root.