faq обучение настройка
Текущее время: Пн июл 21, 2025 18:37

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Как перезагрузить DI-604?
СообщениеДобавлено: Чт мар 25, 2010 09:02 
Не в сети

Зарегистрирован: Ср мар 03, 2010 11:17
Сообщений: 8
Как перезагрузить DI-604, когда он в очередной раз "виснет"?
Ни телнета, ни ssh...
Сейчас вот ковыряюсь как wget'ом это сделать, пока безуспешно.
Есть у кого готовое решение?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 25, 2010 10:25 
Не в сети

Зарегистрирован: Ср мар 03, 2010 11:17
Сообщений: 8
Доделал с помощью wget. Проверяю пинг до яндекса, и если его нет - перезагружаю DI-604. В кроне запуск раз в минуту.

Скрипт такой:

check-n-reboot-dlink-DI-604.sh:

Код:
#!/bin/sh

if [ "`/usr/lib/nagios/plugins/check_ping -H yandex.ru -w 20,3% -c 30,10% -p 3 | grep 'PING OK' -c`" = "1" ]; then
  exit
else
  echo Pinging yandex.ru FAILED, rebooting...
fi

DLINK_IP=
if [ ! -z $1 ]; then DLINK_IP=$1; fi

USER=
if [ ! -z $2 ]; then USER=$2; fi

PASS=
if [ ! -z $3 ]; then PASS=$3; fi

wget --http-user=$USER --http-password=$PASS 'http://'$DLINK_IP'/cgi-bin/rebo' -nv -O /dev/null


Пока сеть не отваливалась, сказать всё ли работает на 100% не могу, потестирую - отпишу.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 25, 2010 14:00 
Не в сети

Зарегистрирован: Ср мар 03, 2010 11:17
Сообщений: 8
Коли начал тему, уж продолжу.

Чуть дополнил скрипт. Сначала проверяем пингуется ли сам роутер, и если нет - выходим, а если да, проверяем пингуется ли ближайший прововский роутер (Корбина хиа), и если да - выходим, а если нет - перезагружаем длинк.

Код:
#!/bin/sh

check_ping_cmd=/usr/lib/nagios/plugins/check_ping
router_ip=192.168.0.1
router_http_user=admin
router_http_pass=
ping_host=78.107.1.50 #corbina's cisco PPTP server
#ping_host=77.88.21.11 #yandex.ru

if [ ! -z $1 ]; then router_ip=$1; fi
if [ ! -z $2 ]; then router_http_user=$2; fi
if [ ! -z $3 ]; then router_http_pass=$3; fi

is_host_ok() {
    if [ "`${check_ping_cmd} -H ${1} -w 30,100% -c 50,100% -p 5 | grep 'PING OK' -c`" = "1" ]; then
   return 1
    else
   return 0
    fi
}

# begin of script

echo -n "Checking if ${router_ip} is up... "
is_host_ok $router_ip
if [ $? = 0 ]; then
    echo "host is down: ${router_ip}. Exiting..."
    exit 1
else
    echo "host is up: $router_ip"
fi

echo -n "Checking if $ping_host is up... "
is_host_ok $ping_host
if [ $? = 1 ]; then
    echo "host is up: $ping_host . Exiting..."
    exit 0
else
    echo "host is unavailable: $ping_host . Rebooting DI-604... "
fi

wget --http-user=${router_http_user} --http-password=${router_http_pass} http://${router_ip}/cgi-bin/rebo -nv -O /dev/null


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot] и гости: 269


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB