Скрипт для набора 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.

Другие вопросы по тегам