Перейти до

Автоматический ребут BDCOM P3310B.


pavlabor

Рекомендованные сообщения

Данный скрипт ребутит голову BDCOM P3310B, через телнет .

Можно писать мониторинг и ребутить голову по событию, например отваливание фабрики коммутации GPON.

#! /usr/local/bin/php
<?php
$username = "admin"; # Поставить свой логин головы
$password = "admin"; # Поставить свой пароль головы
$ip = "192.168.0.1"; # Поставить свой IP головы
$con = pfsockopen($ip, 23, $errno, $errstr, 10);
$login = $username."\r\n";
    fwrite($con, $login); # Логин
    $pass = $password."\r\n";
    fwrite($con, $pass);  # Пароль
    $command = "enable\r\n";  # Поднимаем права
    sleep(1);
    fwrite($con, $command);
    sleep(1);
    fwrite($con,"\r\n");
    sleep(2);
    fwrite($con, "reboot\r\n"); # Команда - reboot
    sleep(2);
    fwrite($con, "y\r\n"); # Подтверждение - y
sleep(2);
$out = fread($con, 16536);
$out = end(explode(' -----', $out));
$arr_out = explode("\n", $out);
while (trim(array_pop($arr_out)) == "--More--") {
 fwrite($con, chr(32));
     sleep(2);
     $arr_tmp = explode("\r\n", fread($con, 16536));
     $arr_out = array_merge($arr_out,$arr_tmp);
     }
fclose($con);
?>

Благодарности dan_aspire, Kycherr, натыкайте им плюсов в репу.

Відредаговано pavlabor
Ссылка на сообщение
Поделиться на других сайтах

ребутнуть - не проблема.

 

по каким признакам автоматически можно узнать, что отсох пон чип (а не, к примеру, оптику рубанули)? у кого есть на стенде?

 

у нас - пока головы не таращило, но подпереть бы костыликом не помешало на всякий.

Ссылка на сообщение
Поделиться на других сайтах

ребутнуть - не проблема.

 

по каким признакам автоматически можно узнать, что отсох пон чип (а не, к примеру, оптику рубанули)? у кого есть на стенде?

 

у нас - пока головы не таращило, но подпереть бы костыликом не помешало на всякий.

присоединяюсь, у меня периодически отваливается, могу протестить, только тоже интересует по каким признакам скрипт знает что чип отвалился?

Відредаговано revomix
Ссылка на сообщение
Поделиться на других сайтах

ребутнуть - не проблема.

 

по каким признакам автоматически можно узнать, что отсох пон чип (а не, к примеру, оптику рубанули)? у кого есть на стенде?

 

у нас - пока головы не таращило, но подпереть бы костыликом не помешало на всяки

 

Когда падает чип , sh int epon выдает ошибку а не состояние интерфейса

Ссылка на сообщение
Поделиться на других сайтах

sh int epon0/1
^
Parameter invalid

 

вместо :

 

 

sh int epon0/1
EPON0/1 is administratively down, line protocol is down
Ifindex is 8, unique port number is 7
Hardware is GigaEthernet-PON, address is fcfa.f999.1cdc (bia fcfa.f999.1cdc)
MTU 1500 bytes, BW 100000 kbit, DLY 2000 usec
Encapsulation ARPA
Full-duplex, 1000Mb/s
flow-control off
5 minutes input rate 0 bits/sec, 0 packets/sec
5 minutes output rate 0 bits/sec, 0 packets/sec
Received 0 packets, 0 bytes
0 broadcasts, 0 multicasts
0 discard, 0 error, 0 PAUSE
0 align, 0 FCS, 0 symbol
0 carriersense
Transmited 0 packets, 0 bytes
0 broadcasts, 0 multicasts
0 discard, 0 error, 0 PAUSE
0 sqettest, 0 deferred
0 single, 0 multiple, 0 excessive, 0 late

Відредаговано Ajar
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

Пингуем голову, если голова ответила,

мониторим три маркера, желательно по разным направлениям

если первый маркер ответил - отбой, нет,

проверянем второй, да - отбой, нет,

проверяем третий, да - отбой, нет,

Считываем количество онух на наименее нагруженной поне, EPON0/1, считалось - отбой, нет,

ребутим голову и делаем запись в логе, можно письмо админу отправлять.

 

В кроне

*/1   *   *   *   *   root   /путь к скрипту/reboot.php > /dev/null 2>&1

 

сам скрипт - reboot.php

перед запуском, рскоментарьте секцию тест, погоняйте, отчеты можно получить раскоментарив соответствующие строки

#! /usr/local/bin/php
<?php
# Скрипт перегружает голову, в результате неудачного пинггования трех контрольных узлов и опроса головы.
$username = "xxxx";
$password = "xxxx";
$ipPon = "172.16.0.x";
$ipTest1 = "172.16.x.23";  # Сливовая-Виноградная
$ipTest2 = "172.16.x.135"; # Лысого-Кучерявого
$ipTest3 = "172.16.x.20";  # ул.-пер. Грибоедова
$arr_count = 30; # на модуле EPON0/1, должно висеть не менее 5 онух, если меньше скорректируйте по отчету print_r($arr_out);
# test, раскоментарить, в течении минуты, в кроне должен быть отчет о времениперегрузки головы,
# если все окей, закоментировать обратно
#$ipTest1 = "172.16.118.10"; #  23 Котляревского-Лохвицкая
#$ipTest2 = "172.16.118.10"; # 135 Лысенка-Островского
#$ipTest3 = "172.16.118.10"; #  20 ул.-пер. Чайковского
#$arr_count = 300;
$reboot = 1;

$unix_nmap = "ping -t 1 -c 1 -s 16 ".$ipPon." | grep from";
unset($scr_count);
$scr_count = explode(" ",`$unix_nmap`);
#print_r($scr_count);
if ($scr_count[3]) {
$unix_nmap = "ping -t 1 -c 1 -s 16 ".$ipTest1." | grep from";
#echo $unix_nmap;
unset($scr_count);
#echo `$unix_nmap`;
$scr_count = explode(" ",`$unix_nmap`);
#print_r($scr_count);
#echo sizeof($scr_count)."\r\n";
if ($scr_count[3]!=$ipTest1.":") {
$unix_nmap = "ping -t 1 -c 1 -s 16 ".$ipTest2." | grep from";
#echo $unix_nmap;
unset($scr_count);
#echo `$unix_nmap`;
$scr_count = explode(" ",`$unix_nmap`);
#print_r($scr_count);
#echo sizeof($scr_count)."\r\n";
 if ($scr_count[3]!=$ipTest2.":") {
 $unix_nmap = "ping -t 1 -c 1 -s 16 ".$ipTest3." | grep from";
#echo $unix_nmap;
 unset($scr_count);
#echo `$unix_nmap`;
 $scr_count = explode(" ",`$unix_nmap`);
# print_r($scr_count);
# echo sizeof($scr_count)."\r\n";
  if ($scr_count[3]!=$ipTest3.":") {
   $con = pfsockopen($ipPon, 23, $errno, $errstr, 10);
   $login = $username."\r\n";
    fwrite($con, $login);
    $pass = $password."\r\n";
    fwrite($con, $pass);
    $command = "enable\r\n";
    sleep(1);
    fwrite($con, $command);
    sleep(1);
    fwrite($con,"\r\n");
    sleep(2);
    fwrite($con, "show running-config interface EPON0/1\r\n"); # Контрольный отчет с модуля пон, как контроль что пон работает.
#    fwrite($con, "show running-config interface epon0/1:34\r\n");
    sleep(2);
    $out = fread($con, 16536);
    $out = end(explode(' -----', $out));
    $arr_out = explode("\n", $out);
    while (trim(array_pop($arr_out)) == "--More--") {
     fwrite($con, chr(32));
     sleep(2);
     $arr_tmp = explode("\r\n", fread($con, 16536));
     $arr_out = array_merge($arr_out,$arr_tmp);
    }
fclose($con);
#print_r($arr_out);
if (sizeof($arr_out)>$arr_count) $reboot = 0;
  } else $reboot = 0;
 } else $reboot = 0;
} else $reboot = 0;
#echo $reboot."\r\n";

if ($reboot) {
 $con = pfsockopen($ipPon, 23, $errno, $errstr, 10);
 $login = $username."\r\n";
    fwrite($con, $login);
    $pass = $password."\r\n";
    fwrite($con, $pass);
    $command = "enable\r\n";
    sleep(1);
    fwrite($con, $command);
    sleep(1);
    fwrite($con,"\r\n");
    sleep(2);
    fwrite($con, "reboot\r\n");
    sleep(2);
    fwrite($con, "y\r\n");
 fclose($con);

  $foCD=fopen("/var/log/rebootPon.log","a+");
   fwrite($foCD, date("y.m.d H:i:s")."\treboot\n");
  fclose($foCD);
 }
}
?>

Должно работать под любой осью.

Відредаговано pavlabor
Ссылка на сообщение
Поделиться на других сайтах

sleep в конструкции не радует, всё таки связка expect-a лучше должна отрабатывать по идее, и если у железки CPU загружен - она может отвечать дольше чем секунду.

правда expect под пхп идет отдельными пакетами PECL.

ИМХО лучше бы вышло через консольный expect или perl/python


 

Когда падает чип , sh int epon выдает ошибку а не состояние интерфейса

 

а по снмп что в интерфейсах при этом?

 

кстати хорошее замечание, может достаточно распарсить IfDescr какой-нить

Ссылка на сообщение
Поделиться на других сайтах

я бы смтптрапом ловил , тогда ребут головы будет мгновенный. Настроил голову , жду ... пока скриптом лью все в файл

помоему там не происходит события linkdown, там просто загадочным образом они ЕПОН порты исчезают из системы до ребута

но если таки происходит - будете спасителем человечества  бдкомо-водов :D

Відредаговано l1ght
Ссылка на сообщение
Поделиться на других сайтах

 

я бы смтптрапом ловил , тогда ребут головы будет мгновенный. Настроил голову , жду ... пока скриптом лью все в файл

помоему там не происходит события linkdown, там просто загадочным образом они ЕПОН порты исчезают из системы до ребута

но если таки происходит - будете спасителем человечества  бдкомо-водов :D

 

точно , просто  пропадают интерфейсы epon

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

sleep в конструкции не радует, всё таки связка expect-a лучше должна отрабатывать по идее, и если у железки CPU загружен - она может отвечать дольше чем секунду.

правда expect под пхп идет отдельными пакетами PECL.

ИМХО лучше бы вышло через консольный expect или perl/python

 

Когда падает чип , sh int epon выдает ошибку а не состояние интерфейса

 

а по снмп что в интерфейсах при этом?

 

кстати хорошее замечание, может достаточно распарсить IfDescr какой-нить

 

С IfDescr, безусловно быстрее, тогда код получим такой вид,

если OID для ребута ОЛТа заработает, можно вообще обойтись средствами php.

#! /usr/local/bin/php
<?php
# Скрипт перегружает голову, в результате неудачного пинггования трех контрольных узлов и опроса головы.
$username = "xxxx";
$password = "xxxx";
$ipPon = "172.16.0.x";
$ipTest1 = "172.16.x.23";  # Сливовая-Виноградная
$ipTest2 = "172.16.x.135"; # Лысого-Кучерявого
$ipTest3 = "172.16.x.20";  # ул.-пер. Грибоедова
$arr_count = 30; # на модуле EPON0/1, должно висеть не менее 5 онух, если меньше скорректируйте по отчету print_r($arr_out);
# test, раскоментарить, в течении минуты, в кроне должен быть отчет о времениперегрузки головы,
# если все окей, закоментировать обратно
#$ipTest1 = "172.16.118.10"; #  23 Котляревского-Лохвицкая
#$ipTest2 = "172.16.118.10"; # 135 Лысенка-Островского
#$ipTest3 = "172.16.118.10"; #  20 ул.-пер. Чайковского
#$arr_count = 300;
$reboot = 1;

$unix_nmap = "ping -t 1 -c 1 -s 16 ".$ipPon." | grep from";
unset($scr_count);
$scr_count = explode(" ",`$unix_nmap`);
#print_r($scr_count);
if ($scr_count[3]) {
$unix_nmap = "ping -t 1 -c 1 -s 16 ".$ipTest1." | grep from";
#echo $unix_nmap;
unset($scr_count);
#echo `$unix_nmap`;
$scr_count = explode(" ",`$unix_nmap`);
#print_r($scr_count);
#echo sizeof($scr_count)."\r\n";
if ($scr_count[3]!=$ipTest1.":") {
$unix_nmap = "ping -t 1 -c 1 -s 16 ".$ipTest2." | grep from";
#echo $unix_nmap;
unset($scr_count);
#echo `$unix_nmap`;
$scr_count = explode(" ",`$unix_nmap`);
#print_r($scr_count);
#echo sizeof($scr_count)."\r\n";
 if ($scr_count[3]!=$ipTest2.":") {
 $unix_nmap = "ping -t 1 -c 1 -s 16 ".$ipTest3." | grep from";
#echo $unix_nmap;
 unset($scr_count);
#echo `$unix_nmap`;
 $scr_count = explode(" ",`$unix_nmap`);
# print_r($scr_count);
# echo sizeof($scr_count)."\r\n";
  if ($scr_count[3]!=$ipTest3.":") {
/*   $con = pfsockopen($ipPon, 23, $errno, $errstr, 10);
   $login = $username."\r\n";
    fwrite($con, $login);
    $pass = $password."\r\n";
    fwrite($con, $pass);
    $command = "enable\r\n";
    sleep(1);
    fwrite($con, $command);
    sleep(1);
    fwrite($con,"\r\n");
    sleep(2);
    fwrite($con, "show running-config interface EPON0/1\r\n"); # Контрольный отчет с модуля пон, как контроль что пон работает.
#    fwrite($con, "show running-config interface epon0/1:34\r\n");
    sleep(2);
    $out = fread($con, 16536);
    $out = end(explode(' -----', $out));
    $arr_out = explode("\n", $out);
    while (trim(array_pop($arr_out)) == "--More--") {
     fwrite($con, chr(32));
     sleep(2);
     $arr_tmp = explode("\r\n", fread($con, 16536));
     $arr_out = array_merge($arr_out,$arr_tmp);
    }
fclose($con);
#print_r($arr_out);
if (sizeof($arr_out)>$arr_count) $reboot = 0;*/

$object_id = "ifDescr";
$community = "public";
$arr_out = snmpwalk($ipPon, $community, $object_id);
#print_r($arr_out);
if (sizeof($arr_out)>15) $reboot = 0; # Параметр 15, учитывает наличие не менее пяти ОНУ-х на голове, если больше то нечего, если меньше, параметр нужно скорректировать!
  } else $reboot = 0;
 } else $reboot = 0;
} else $reboot = 0;
#echo $reboot."\r\n";

if ($reboot) {
# OID для ребута ОЛТа, не курицца, если сработает, то скрипт можно подправить так
/* $con = pfsockopen($ipPon, 23, $errno, $errstr, 10);
 $login = $username."\r\n";
    fwrite($con, $login);
    $pass = $password."\r\n";
    fwrite($con, $pass);
    $command = "enable\r\n";
    sleep(1);
    fwrite($con, $command);
    sleep(1);
    fwrite($con,"\r\n");
    sleep(2);
    fwrite($con, "reboot\r\n");
    sleep(2);
    fwrite($con, "y\r\n");
 fclose($con); */
$community = "public";
$object_id = "1.3.6.1.4.1.3320.9.184.7";
snmpset($ip, $community, $object_id,'i',0);

  $foCD=fopen("/var/log/rebootPon.log","a+");
   fwrite($foCD, date("y.m.d H:i:s")."\treboot\n");
  fclose($foCD);
 }
}
?>
Відредаговано pavlabor
Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від AlinaQuan
      Запрошений продукт, GPON WIFI 6 AX3000 ONU, є високоякісним обладнанням, призначеним для надання швидкісного та надійного доступу до Інтернету через оптичну мережу. Дозволяє забезпечити стабільне підключення та передачу даних у високій швидкості.
      Основні характеристики:
      1. **1 * інтерфейс GPON**: Підтримує стандартний інтерфейс SC/UPC/APC, відповідає стандартам GPON.
      2. **4 * інтерфейси Ethernet**: Підтримує інтерфейси 10 MBPS / 100 MBPS, 1000 MBPS, RJ - 45, відповідає стандарту IEEE802.3-2005.
      3. **1 * інтерфейс USB**: Стандартний інтерфейс USB 3.0 для зручного підключення різноманітних пристроїв.
      4. **Двосмуговий WIFI6 AX3000 (2 ×2 MIMO (2.4G&5G))**: Забезпечує швидкість передачі даних до 3000 Мбіт/с, що дозволяє користувачам насолоджуватися швидким та стабільним бездротовим зв'язком.
       
      Цей продукт ідеально підходить для використання в домашніх, офісних та комерційних мережах. Завдяки своїм передовим технологіям та високій продуктивності, він забезпечить надійне та швидке підключення до Інтернету для вашого пристрою.
    • Від AlinaQuan
      FTTR (Fiber to the Room) - це проект зв'язку, спрямований на забезпечення високошвидкісного та надійного підключення до мережі в приміщеннях, таких як готелі, лікарні, офісні будівлі тощо. Основна мета мережі FTTR полягає в тому, щоб розширити оптичну мережу до кожної кімнати або кожної робочої зони, щоб забезпечити користувачів високоякісним підключенням до мережі в будь-якому місці.
      Основні кроки у реалізації мережі FTTR зазвичай включають наступне:
      Планування та проектування: Спочатку потрібно провести місцевий огляд і планування мережі, визначити обсяг покриття мережі, шляхи прокладання оптичного кабелю та підключення кінцевих точок тощо.
      Прокладання оптичного кабелю: Наступним кроком є прокладання оптичного кабелю. Це може включати внутрішнє або зовнішнє прокладання оптичного кабелю, щоб забезпечити підключення до кожної кімнати або робочої зони.
      Встановлення кінцевих пристроїв: Встановлення оптичних кінцевих пристроїв у кожній кімнаті або робочій зоні. Ці пристрої відповідають за перетворення оптичного сигналу в доступний для використання мережевий сигнал і надають мережевий інтерфейс для підключення пристроїв користувачів.
      Управління та обслуговування мережі: Після завершення будівництва мережі необхідно здійснювати управління та обслуговування мережі, щоб забезпечити стабільність та надійність мережі. Це включає моніторинг продуктивності мережі, оперативне вирішення проблем і ремонт тощо.
      Під час реалізації мережі FTTR необхідно комплексно враховувати такі фактори, як будівельна конструкція, потреби користувачів та бюджет, щоб забезпечити відповідність мережі потребам користувачів та забезпечити зручне використання.
       
    • Від AlinaQuan
      🚀 Introducing Our High-Performance OLT Solutions for Next-Gen Networks! 🚀
       
      Are you ready to elevate your network infrastructure to unparalleled levels of efficiency and speed? Look no further! Our cutting-edge GPON and EPON OLT solutions are here to revolutionize your network operations.
       
      🔹 GPON OLT: With options ranging from 4 to 16 ports, our GPON OLT delivers lightning-fast connectivity and unparalleled reliability. Whether you're managing a small-scale deployment or a large enterprise network, our GPON OLTs offer the scalability and performance you need to stay ahead of the curve.
      30000UAH/pcs
       
      🔹 EPON OLT: Experience the power of simplicity with our EPON OLT solutions. Available in 4 and 8 port configurations, our EPON OLTs provide seamless integration and hassle-free management for your network infrastructure. Say goodbye to complexity and hello to streamlined operations!
      20000UAH/pcs
       
      Why Choose Our OLT Solutions?
      ✅ Scalability: Scale your network effortlessly with our versatile OLT solutions, accommodating growing demands without compromising performance. ✅ Reliability: Built to withstand even the most demanding network environments, our OLTs ensure uninterrupted connectivity and minimal downtime. ✅ Ease of Management: Simplify your network operations with intuitive management interfaces and robust monitoring capabilities. ✅ Future-Proof: Stay ahead of technological advancements with our forward-thinking OLT solutions, designed to support future network requirements.
       
      Don't miss out on this opportunity to supercharge your network infrastructure! Contact us today to learn more about our GPON and EPON OLT solutions and take your network to the next level.
    • Від AlinaQuan
      An ONU with a CATV port serves as a gateway for IPTV services. It connects the fiber optic network to the user's premises, allowing the delivery of television content over the internet protocol. The CATV port enables the reception of television signals, which can be distributed to TVs within the home via traditional coaxial cables.
       
      And the VOIP port on an ONU facilitates Voice over Internet Protocol (VOIP) services. It enables the transmission of voice calls over the internet, converting analog voice signals into digital data packets that can be transmitted over the network. This port allows users to make phone calls using their internet connection instead of traditional telephone lines.
       
      Here, Exw Shenzhen 1600UAH (Shipping cost and tariff not included) you will get a WIFI 6 ONU with CATV, VOIP, USB port!
       
       
      For whole price, just contact viber/whatsapp/wechat by +8618086327779 for more details!
       
    • Від AlinaQuan
      Hi, it's so great to meet you here. We are a Chinese factory that located in Shenzhen, China. Most of our clients are Operator and ISP.
       
      We have only 3 main product line currently, 
       
      Product Line 1: GPON/EPON/XGPON OLT, and we are the only factory that work XGSPON OLT out in similar level factory. No company has XGSPON OLT, except company like Huawei, ZTE!
       8300 to 118290UAH  FOR EPON/ GPON OLT
       
      Product Line 2: GPON/EPON/XGPON ONU WIFI 5 and WIFI 6, we are working on XGSPON ONU. And MDU, 4, 8 ports, no POE and with POE port!
      800-3000UAH/pcs (Retail Price) 4GE WIFI 6 AX3000 Dual Band GPON/EPON ONU With CATV por
       
      Product Line 3: It's our Switches, we got Enthernet Switch, All-optical Switch,Access Layer,Distribution Layer,Core Layer, we all have. 
      2500UAH/pcs  to 120000UAH FOR Ethernet, All-optical switch
      And you can also buy OLT from Ukraine local, saving your time, shipping cost !
      Anyway, welcome to contact me for more details! Whatsapp/Viber / Wechat: +8618086327779 !
      Wish you guys have a nice day!
×
×
  • Створити нове...