Сценарий для вызова 3g-ссылки в случае, если сеть отключена?

Я хочу настроить маршрутизатор Ubuntu с автоматической переходом на 3G-связь. Возможно, я настроил маршрутизацию и агрегацию ссылок, но я не знаю, как контролировать статус ссылки и набирать 3G-ссылку, если она не работает. Указатели на полезные ресурсы очень ценятся.

4
задан 8 September 2010 в 22:44

9 ответов

Я не уверен, что есть что-то там, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного скомпилировать сценарий, который:

Каждые 10 минут пингует Google с таймаутом в 2 секунды и только с вашего «фиксированного» соединения (а не 3G) (используйте флаг -I). Если ping успешно, и вы находитесь в фиксированном соединении, ничего не делайте. Если вы находитесь в сети 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.

2
ответ дан 25 July 2018 в 23:13

Я не уверен, что есть что-то там, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного сходить в Google, скрестив скрипт, который:

Каждые 10 минут пингует Google с таймаутом в 2 секунды и только с вашего «фиксированного» соединения (а не 3G) (используйте флаг -I). Если ping успешно, и вы находитесь в фиксированном соединении, ничего не делайте. Если вы находитесь в сети 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.

2
ответ дан 27 July 2018 в 03:23

Я не уверен, что есть что-то там, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного сходить в Google, скрестив скрипт, который:

Каждые 10 минут пингует Google с таймаутом в 2 секунды и только с вашего «фиксированного» соединения (а не 3G) (используйте флаг -I). Если ping успешно, и вы находитесь в фиксированном соединении, ничего не делайте. Если вы находитесь в сети 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.

2
ответ дан 31 July 2018 в 13:05

Я не уверен, что есть что-то, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного поработать в Google, скрипке, которая:

  • Каждые 10 минут пинги google с таймаутом 2 секунды и только с вашего «фиксированного» соединения (а не 3G) (используйте флаг -I ).
  • ] Если ping удался, и вы на фиксированном соединении, ничего не делайте.
  • Если вы подключились к 3G, а пинг по фиксированному соединению работает, снимите 3G-адаптер.
  • Если он не работает, подключите 3G-адаптер.
  • [ ! d12]

    Вот моя быстрая попытка:

      #!  / bin / bash CONNECTION = 1 main () {если ping -q -c 1 -w 1 -I eth0 google.com & gt;  / dev / null;  затем эхо «Соединение в порядке!»  если [$ CONNECTION -eq 0];  затем # взять 3g-соединение вниз ifconfig 3GADAPTERNAME вниз CONNECTION = 1 fi else echo «Соединение мертво! Да здравствует соединение!»  если [$ CONNECTION -eq 1];  затем # включить соединение 3g на ifconfig 3GADAPTERNAME вверх ПОДКЛЮЧЕНИЕ = 0 fi fi sleep 5 main} main  

    Очевидно, замените 3GADAPTERNAME на имя вашего адаптера. выключите eth0 , если ваше основное соединение отличается. Убедитесь, что он настроен на автоматическое соединение (поэтому, когда это разрешено, он делает). Сценарий должен работать от имени root.

2
ответ дан 2 August 2018 в 04:31

Я не уверен, что есть что-то, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного поработать в Google, скрипке, которая:

  • Каждые 10 минут пинги google с таймаутом 2 секунды и только с вашего «фиксированного» соединения (а не 3G) (используйте флаг -I ).
  • ] Если ping удался, и вы на фиксированном соединении, ничего не делайте.
  • Если вы подключились к 3G, а пинг по фиксированному соединению работает, снимите 3G-адаптер.
  • Если он не работает, подключите 3G-адаптер.
  • [ ! d12]

    Вот моя быстрая попытка:

      #!  / bin / bash CONNECTION = 1 main () {если ping -q -c 1 -w 1 -I eth0 google.com & gt;  / dev / null;  затем эхо «Соединение в порядке!»  если [$ CONNECTION -eq 0];  затем # взять 3g-соединение вниз ifconfig 3GADAPTERNAME вниз CONNECTION = 1 fi else echo «Соединение мертво! Да здравствует соединение!»  если [$ CONNECTION -eq 1];  затем # включить соединение 3g на ifconfig 3GADAPTERNAME вверх ПОДКЛЮЧЕНИЕ = 0 fi fi sleep 5 main} main  

    Очевидно, замените 3GADAPTERNAME на имя вашего адаптера. выключите eth0 , если ваше основное соединение отличается. Убедитесь, что он настроен на автоматическое соединение (поэтому, когда это разрешено, он делает). Сценарий должен работать от имени root.

2
ответ дан 4 August 2018 в 21:05

Я не уверен, что есть что-то, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного поработать в Google, скрипке, которая:

  • Каждые 10 минут пинги google с таймаутом 2 секунды и только с вашего «фиксированного» соединения (а не 3G) (используйте флаг -I ).
  • ] Если ping удался, и вы на фиксированном соединении, ничего не делайте.
  • Если вы подключились к 3G, а пинг по фиксированному соединению работает, снимите 3G-адаптер.
  • Если он не работает, подключите 3G-адаптер.
  • [ ! d12]

    Вот моя быстрая попытка:

      #!  / bin / bash CONNECTION = 1 main () {если ping -q -c 1 -w 1 -I eth0 google.com & gt;  / dev / null;  затем эхо «Соединение в порядке!»  если [$ CONNECTION -eq 0];  затем # взять 3g-соединение вниз ifconfig 3GADAPTERNAME вниз CONNECTION = 1 fi else echo «Соединение мертво! Да здравствует соединение!»  если [$ CONNECTION -eq 1];  затем # включить соединение 3g на ifconfig 3GADAPTERNAME вверх ПОДКЛЮЧЕНИЕ = 0 fi fi sleep 5 main} main  

    Очевидно, замените 3GADAPTERNAME на имя вашего адаптера. выключите eth0 , если ваше основное соединение отличается. Убедитесь, что он настроен на автоматическое соединение (поэтому, когда это разрешено, он делает). Сценарий должен работать от имени root.

2
ответ дан 6 August 2018 в 04:35

Я не уверен, что есть что-то, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного поработать в Google, скрипке, которая:

  • Каждые 10 минут пинги google с таймаутом 2 секунды и только с вашего «фиксированного» соединения (а не 3G) (используйте флаг -I ).
  • ] Если ping удался, и вы на фиксированном соединении, ничего не делайте.
  • Если вы подключились к 3G, а пинг по фиксированному соединению работает, снимите 3G-адаптер.
  • Если он не работает, подключите 3G-адаптер.
  • [ ! d12]

    Вот моя быстрая попытка:

      #!  / bin / bash CONNECTION = 1 main () {если ping -q -c 1 -w 1 -I eth0 google.com & gt;  / dev / null;  затем эхо «Соединение в порядке!»  если [$ CONNECTION -eq 0];  затем # взять 3g-соединение вниз ifconfig 3GADAPTERNAME вниз CONNECTION = 1 fi else echo «Соединение мертво! Да здравствует соединение!»  если [$ CONNECTION -eq 1];  затем # включить соединение 3g на ifconfig 3GADAPTERNAME вверх ПОДКЛЮЧЕНИЕ = 0 fi fi sleep 5 main} main  

    Очевидно, замените 3GADAPTERNAME на имя вашего адаптера. выключите eth0 , если ваше основное соединение отличается. Убедитесь, что он настроен на автоматическое соединение (поэтому, когда это разрешено, он делает). Сценарий должен работать от имени root.

2
ответ дан 7 August 2018 в 22:45

Я не уверен, что есть что-то, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного поработать в Google, скрипке, которая:

  • Каждые 10 минут пинги google с таймаутом 2 секунды и только с вашего «фиксированного» соединения (а не 3G) (используйте флаг -I ).
  • ] Если ping удался, и вы на фиксированном соединении, ничего не делайте.
  • Если вы подключились к 3G, а пинг по фиксированному соединению работает, снимите 3G-адаптер.
  • Если он не работает, подключите 3G-адаптер.
  • [ ! d12]

    Вот моя быстрая попытка:

      #!  / bin / bash CONNECTION = 1 main () {если ping -q -c 1 -w 1 -I eth0 google.com & gt;  / dev / null;  затем эхо «Соединение в порядке!»  если [$ CONNECTION -eq 0];  затем # взять 3g-соединение вниз ifconfig 3GADAPTERNAME вниз CONNECTION = 1 fi else echo «Соединение мертво! Да здравствует соединение!»  если [$ CONNECTION -eq 1];  затем # включить соединение 3g на ifconfig 3GADAPTERNAME вверх ПОДКЛЮЧЕНИЕ = 0 fi fi sleep 5 main} main  

    Очевидно, замените 3GADAPTERNAME на имя вашего адаптера. выключите eth0 , если ваше основное соединение отличается. Убедитесь, что он настроен на автоматическое соединение (поэтому, когда это разрешено, он делает). Сценарий должен работать от имени root.

2
ответ дан 10 August 2018 в 10:51

Я не уверен, что есть что-то, что может сделать это для вас ... Однако вы могли бы с небольшим количеством скриптов немного поработать в Google, скрипке, которая:

  • Каждые 10 минут пинги google с таймаутом 2 секунды и только с вашего «фиксированного» соединения (а не 3G) (используйте флаг -I ).
  • ] Если ping удался, и вы на фиксированном соединении, ничего не делайте.
  • Если вы подключились к 3G, а пинг по фиксированному соединению работает, снимите 3G-адаптер.
  • Если он не работает, подключите 3G-адаптер.
  • [ ! d12]

    Вот моя быстрая попытка:

      #!  / bin / bash CONNECTION = 1 main () {если ping -q -c 1 -w 1 -I eth0 google.com & gt;  / dev / null;  затем эхо «Соединение в порядке!»  если [$ CONNECTION -eq 0];  затем # взять 3g-соединение вниз ifconfig 3GADAPTERNAME вниз CONNECTION = 1 fi else echo «Соединение мертво! Да здравствует соединение!»  если [$ CONNECTION -eq 1];  затем # включить соединение 3g на ifconfig 3GADAPTERNAME вверх ПОДКЛЮЧЕНИЕ = 0 fi fi sleep 5 main} main  

    Очевидно, замените 3GADAPTERNAME на имя вашего адаптера. выключите eth0 , если ваше основное соединение отличается. Убедитесь, что он настроен на автоматическое соединение (поэтому, когда это разрешено, он делает). Сценарий должен работать от имени root.

2
ответ дан 13 August 2018 в 17:25

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

Похожие вопросы: