О деактивации форума Eltex

Уважаемые коллеги! В связи с потерей актуальности данного ресурса, нами было принято решение о частичной деактивации форума Eltex. Мы отключили функции регистрации и создания новых тем, а также возможность оставлять сообщения. Форум продолжит работу в "режиме чтения", так как за долгие годы работы здесь накопилось много полезной информации и ответов на часто встречающиеся вопросы.

Мы активно развиваем другие каналы коммуникаций, которые позволяют более оперативно и адресно консультировать наших клиентов. Если у вас возникли вопросы по работе оборудования, вы можете обратиться в техническую поддержку Eltex, воспользовавшись формой обращения на сайте компании или оставить заявку в системе Service Desk. По иным вопросам проконсультируют наши менеджеры коммерческого отдела: eltex@eltex-co.ru.

SMG-2016 автоматизация из PHP [РЕШЕНО]

ECSS-10, TAU.IP, SMG, RG
AlexNVZ
Сообщения: 21
Зарегистрирован: 13 апр 2017 01:30
Reputation: 0

SMG-2016 автоматизация из PHP [РЕШЕНО]

Сообщение AlexNVZ » 13 апр 2017 21:37

Добрый день.
Стоит вопрос автоматизации для SMG-2016 через PHP
Пробовал такую конструкцию:

Код: Выделить всё

<?php

class ssh {
   var $stream;
   var $connection;
   var $data;
   function connect($host,$login,$pass,$port) {
     $this->connection = ssh2_connect($host, $port);
     return ssh2_auth_password($this->connection, $login, $pass);
   }
   function cmd ($cmd) {
     if( !($this->stream=ssh2_exec($this->connection,$cmd )) ) {
       echo "fail: unable to execute command";
     }
     else {
       stream_set_blocking($this->stream, true );
       $this->data = "";
       while( $buf = fread($this->stream,4096) ) {
         $this->data .= $buf;
       }
     }
     return $this->data;
   }
   function close () {
     fclose($this->stream);
   }
};
$S = new ssh();
$S->connect('192.168.0.50', 'admin', 'webastpass125','10122');
echo $S->cmd("space hint no\r");
echo $S->cmd("show system info\r");
$S->close();
?>


Зависает и не возвращает ответа. На LInux сервере все отрабатывает.
Вчем отличие шела Linux от SMG
Последний раз редактировалось AlexNVZ 07 май 2017 14:15, всего редактировалось 1 раз.

Bokrenok
Сообщения: 406
Зарегистрирован: 04 сен 2006 14:49
Reputation: 0
Откуда: ELTEX

Re: SMG-2016 автоматизация из PHP

Сообщение Bokrenok » 14 апр 2017 14:10

> echo $S->cmd("space hint no\r");

может будет пальцем в небо, но почему тут просто "\r" ? может попробовать "\r\n" ?

AlexNVZ
Сообщения: 21
Зарегистрирован: 13 апр 2017 01:30
Reputation: 0

Re: SMG-2016 автоматизация из PHP

Сообщение AlexNVZ » 16 апр 2017 16:10

Код: Выделить всё

может будет пальцем в небо, но почему тут просто "\r" ? может попробовать "\r\n" ?

Пробовал, не помогло.

bravo
Сообщения: 873
Зарегистрирован: 19 июн 2015 17:38
Reputation: 6

Re: SMG-2016 автоматизация из PHP

Сообщение bravo » 16 апр 2017 16:20

дежавю... была такая тема уже... только с TCL по-моему.
Посмотрите, может быть поможет: viewtopic.php?f=7&t=6761&p=31367&hilit=tcl#p31367
Тех. саппорт от коллег в telegramm:
https://t.me/eltex_experts
@eltex_experts

AlexNVZ
Сообщения: 21
Зарегистрирован: 13 апр 2017 01:30
Reputation: 0

Re: SMG-2016 автоматизация из PHP

Сообщение AlexNVZ » 16 апр 2017 17:42

Да, но там проблема с пробелами была, это у меня самая первая команда.
И там через раз работало. Здесь же вообще ни как не хочет.

AlexNVZ
Сообщения: 21
Зарегистрирован: 13 апр 2017 01:30
Reputation: 0

Re: SMG-2016 автоматизация из PHP

Сообщение AlexNVZ » 16 апр 2017 17:48

Господа разработчики, вы же можете протестить скрипт и дать рекомендации. Не сложно же...

Bokrenok
Сообщения: 406
Зарегистрирован: 04 сен 2006 14:49
Reputation: 0
Откуда: ELTEX

Re: SMG-2016 автоматизация из PHP

Сообщение Bokrenok » 17 апр 2017 12:29

AlexNVZ писал(а):Господа разработчики, вы же можете протестить скрипт и дать рекомендации. Не сложно же...


ругается:

Код: Выделить всё

PHP Fatal error:  Call to undefined function ssh2_connect()


хотя php-биндинг стоит:

Код: Выделить всё

i   libssh2-1                                                          - SSH2 client-side library
i   libssh2-1-dev                                                      - SSH2 client-side library (development headers)
i   php-ssh2                                                           - Bindings for the libssh2 library

AlexNVZ
Сообщения: 21
Зарегистрирован: 13 апр 2017 01:30
Reputation: 0

Re: SMG-2016 автоматизация из PHP

Сообщение AlexNVZ » 20 апр 2017 13:24

На CentOs дополнительно устанавливается php-pecl-ssh2, ошибок нет

Если скриптом обращаюсь на сервер, он нормально отвечает.

AlexNVZ
Сообщения: 21
Зарегистрирован: 13 апр 2017 01:30
Reputation: 0

Re: SMG-2016 автоматизация из PHP

Сообщение AlexNVZ » 22 апр 2017 15:56

Вопрос не решен.
Уважаемые разработчики, когда можно ожидать рекомендаций?

Bokrenok
Сообщения: 406
Зарегистрирован: 04 сен 2006 14:49
Reputation: 0
Откуда: ELTEX

Re: SMG-2016 автоматизация из PHP

Сообщение Bokrenok » 25 апр 2017 15:43

AlexNVZ писал(а):Вопрос не решен.
Уважаемые разработчики, когда можно ожидать рекомендаций?


сравнил что получается при запуске скрипта и при входе по ssh через linux-shell

на девайсе запускаются такие процессы:

Код: Выделить всё

19627 root       0:00 sshd: admin@notty       # логин скрипта
19652 root       0:00 clish -c space hint no  # попытка выполнить shell-команду

20257 root       0:00 sshd: admin@pts/0   # логин линуксового ssh-клиента
20265 root       0:00 -clish              # запущенный shell для клиента


вот и видны различия.
php-скрипт пытается каждый раз запускать "shell с доп.командами" вместо того, чтобы просто закидывать команды в загруженный shell без явного вызова shell каждый раз.
если знаете как поменять поведение скрипта - можно продолжить эксперименты.

Bokrenok
Сообщения: 406
Зарегистрирован: 04 сен 2006 14:49
Reputation: 0
Откуда: ELTEX

Re: SMG-2016 автоматизация из PHP

Сообщение Bokrenok » 25 апр 2017 15:52

может попробовать использовать ssh2-shell ?
http://php.net/manual/en/function.ssh2-shell.php

Bokrenok
Сообщения: 406
Зарегистрирован: 04 сен 2006 14:49
Reputation: 0
Откуда: ELTEX

Re: SMG-2016 автоматизация из PHP

Сообщение Bokrenok » 25 апр 2017 16:24

вот так заработало:
(причесать конечно надо немного)

Код: Выделить всё

cat ./script.php
#!/usr/bin/php

<?php

class ssh {
   var $shell;
   var $connection;
   var $data;
   function connect($host,$login,$pass,$port) {
     $this->connection = ssh2_connect($host, $port);
     return ssh2_auth_password($this->connection, $login, $pass);
   }

   function shell () {
    $this->shell=ssh2_shell($this->connection, 'xterm');
   }

   function read () {

    while($o=fgets($this->shell)){
        echo $o;
    }
    return $this->data;
   }

   function cmd ($cmd) {

    fwrite($this->shell, $cmd);
    fflush($this->shell);
   }

   function close () {
     fclose($this->shell);
   }
};
$S = new ssh();
echo $S->connect('192.168.23.125', 'admin', 'rootpasswd', '22');
echo $S->shell();
sleep(3); // wait for shell to load
echo $S->read();
echo $S->cmd("space hint no\r\n");
sleep(1);
echo $S->read();
sleep(1);
echo $S->cmd("show system info\r\n");
sleep(1);
echo $S->read();
 echo 'done'.PHP_EOL;
$S->close();
?>


AlexNVZ
Сообщения: 21
Зарегистрирован: 13 апр 2017 01:30
Reputation: 0

Re: SMG-2016 автоматизация из PHP

Сообщение AlexNVZ » 26 апр 2017 15:55

Большое спасибо, теперь работает, со слипами только придумаю что делать.


Вернуться в «Оборудование VoIP»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя