Bash-скрипт для мониторинга ISDN-соединения - PullRequest
0 голосов
/ 05 июня 2010

На сервере Ubuntu 10.04 я хотел бы сделать следующее с помощью bash-скрипта:

Создайте службу, которая контролирует соединение ISDN и, если время простоя превышает 60 секунд, принудительно восстанавливает соединение. Мое текущее решение выглядит примерно так:

#!/usr/bin/bash
LOGFILE=/home/msw/router/ping-stats.txt
TIME="`date +%C%y%m%d%H%M`"
/sbin/ping -c 1 google.com > /dev/null 2>&1
if [ "$?" == "0" ]
then
        STATUS=1
else
        STATUS=0
fi
echo "$TIME $STATUS" >> $LOGFILE

Поскольку пропускная способность очень важна для соединения ISDN, я бы хотел избежать пинга и заменить его командой, которая просто проверяет состояние сетевого устройства. Можно ли из этого сделать вывод, что соединение "вверх"?

Я также хотел бы реализовать решение в качестве службы, которая постоянно проверяет подключение, а не периодически проверяет cronjob.

Я был бы очень признателен, если бы кто-нибудь подтолкнул меня в правильном направлении.

Спасибо

Ответы [ 2 ]

1 голос
/ 05 июня 2010

Ваш ISDN предоставляется внутренним адаптером или через соединение Ethernet? Если у вас есть внешний «модем», вам потребуется запросить его с помощью SNMP или его проприетарного средства.

Вы можете сделать свой тест следующим образом:

if /sbin/ping -c 1 google.com > /dev/null 2>&1
then
    ...

Кроме того, один пинг - это очень небольшое количество байтов. Если вы делаете это всего несколько раз в минуту, вы можете никогда этого не заметить.

1 голос
/ 05 июня 2010

Для быстрых и грязных есть nm-tool.dbus-send может быть немного более точным, но требует знания того, как D-Bus работает с NetworkManager.Если вы хотите что-то постоянное, вам нужно научиться взаимодействовать с D-Bus, но для этого может потребоваться использование чего-то более низкого уровня, например Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...