BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 03 июл 2025, 15:15

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
СообщениеДобавлено: 17 июн 2009, 09:45 
Не в сети

Зарегистрирован: 30 май 2008, 10:21
Сообщения: 22
Карма: 0
Очень хочется сделать:
класс bitel.billing.server.util.telnet.TelnetSession
session.doCommand( "some command [some text]" );

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

Как быть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 июн 2009, 13:15 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
да вроде не должно быть..попробуйте поставить timeout у TelnetSesssion если это версия 4.6


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 июн 2009, 14:06 
Не в сети

Зарегистрирован: 30 май 2008, 10:21
Сообщения: 22
Карма: 0
пробовал, картина та же


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 июн 2009, 18:59 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
я сделал так ой тест на станадратном софтовом telnet:

Код:
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.StringTokenizer;
 
import bitel.billing.common.module.ipn.IPNContractStatus;
import bitel.billing.server.ipn.GateWorker;
import bitel.billing.server.ipn.UserStatus;
import bitel.billing.server.ipn.bean.*;
import bitel.billing.server.util.DefaultServerSetup;
import bitel.billing.server.util.Utils;
import bitel.billing.server.util.telnet.OperationTimedoutException;
import bitel.billing.server.util.telnet.TelnetSession;
import ru.bitel.bgbilling.common.DefaultSetup;
import bitel.billing.common.IPUtils;
import bitel.billing.server.util.Utils;
import bitel.billing.server.util.telnet.OperationTimedoutException;
import bitel.billing.server.util.telnet.TelnetSession;

 
//includeBGBS( "bgbs://ru.bitel.bgbilling.kernel.script.common.bean.ScriptLibrary/manad" );
 
protected void doSync()
{
      log.info( "start of cisco........................................................");
      host = gate.getHost();
      port = gate.getPort();
 
 
      DefaultServerSetup gateSetup = new DefaultServerSetup( gate.getConfig(), "\r\n" );       
 
      pswd = gate.getKeyword();      
      login = gateSetup.getStringValue( "login");
       timeout = gateSetup.getIntValue( "timeout", 0 );      
 
      result = new StringBuffer();

 
      if( log.isDebugEnabled() )
      {
          log.debug( gate.getId() + " gate: " + host + ":" + port  + " login: " + login + " passwd: " +        pswd );
      }
 
 
       log.debug("before connect");
      session = new TelnetSession( host, port);
       session.setTimeout( timeout );
      session.setLoginPromptSequence( ":" );                  
      session.connect();
      log.debug("after connect");
 
      result.append( session.doCommand( login ) );
      log.debug("after login");
      session.setLoginPromptSequence( "$" );
      result.append( session.doCommand( pswd ) );
      log.debug("after pswd");
 
      result.append( session.doCommand( "ls [bla-bla]" ) );

      log.debug("after terminal");

      session.doCommandAsync( "exit" );

 
      log.info("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
      log.info( result );
      log.info("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");      
 
      log.debug( "ok" );
   
 
   log.info( "end of cisco........................................................");
}
 


отработало :
Код:
 06-17/18:56:49  INFO [Thread-7] CiscoVlanGateWorker - Password:
Last login: Wed Jun 17 18:54:20 from localhost.localdomain
[king@ts03 ~]$ ls [bla-bla]
ls: ???µ?????·?????¶???? ?????»?????????? ???????????? ?? [bla-bla]: ???µ?? ???°???????? ???°???»?° ???»?? ???°???°?»?????°
[king@ts03 ~]$


что у вас за железка?..покажите листинг команд (прсто вручную начина от авторизации до ваших "[" )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 июн 2009, 09:27 
Не в сети

Зарегистрирован: 30 май 2008, 10:21
Сообщения: 22
Карма: 0
Нашел!!!!

Я делаю коннект к микротику. Когда отправляешь "trash trash trash trash [ trash2 trash2 trash2 trash2 ]" - Микротик исправно ругается ERROR: no such command or directory (trash2)

Когда пишешь что-то нормальное - "/ip firewall rule billing disable [ip firewall rule billing find src-address=1.1.1.1/32]" - рутер, скорее всего, отрабатывает вложенную команду, но внешняя команда не отрабатывается. Скрипт виснет.

Как лечить, доктор?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 июн 2009, 11:02 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Dizelsky писал(а):
Нашел!!!!

Я делаю коннект к микротику. Когда отправляешь "trash trash trash trash [ trash2 trash2 trash2 trash2 ]" - Микротик исправно ругается ERROR: no such command or directory (trash2)

Когда пишешь что-то нормальное - "/ip firewall rule billing disable [ip firewall rule billing find src-address=1.1.1.1/32]" - рутер, скорее всего, отрабатывает вложенную команду, но внешняя команда не отрабатывается. Скрипт виснет.

Как лечить, доктор?


[] - это вложенная команад для mikrotik ? дайте листинг комнады и какой результат выдает mikrotik (нуберите вручную и скопируйте сюда из консоли). и так код вашего шлюза , где посылаются команды


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 июн 2009, 03:39 
Не в сети

Зарегистрирован: 30 май 2008, 10:21
Сообщения: 22
Карма: 0
да, это вложенные команды. Собственно команду find в микротике никак иначе не используешь, т.к. в терминал она ничего не возвращает. Выполняя её в квадратных скобках получаешь ID подходящей записи, будь то IP адрес или правило в цепочке. Мне так кажется, что какое-то хитрое взаимодействие с терминалом таки происходит.

Листинг:
/ip firewall rule billing disable [ip firewall rule billing find src-address=1.1.1.1/32]

Если просто выкинуть команду в ssh или telnet терминал - всё сработает. Подтверждается и на том скрипте, что приведен вами выше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 29 июн 2009, 16:46 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Dizelsky писал(а):
да, это вложенные команды. Собственно команду find в микротике никак иначе не используешь, т.к. в терминал она ничего не возвращает. Выполняя её в квадратных скобках получаешь ID подходящей записи, будь то IP адрес или правило в цепочке. Мне так кажется, что какое-то хитрое взаимодействие с терминалом таки происходит.

Листинг:
/ip firewall rule billing disable [ip firewall rule billing find src-address=1.1.1.1/32]

Если просто выкинуть команду в ssh или telnet терминал - всё сработает. Подтверждается и на том скрипте, что приведен вами выше.


не опнял что знаичт потеврждается ?? т.е на моем скрипте тоже виснет ?

я просил дать рапечатку ответа из терминала . интресуюет что он выдает в ответ этой команыж..может быть там меняется исмвол приглашения и скрипт его вечно ждет . setTimeout e у TelnetSession пробовали поставить ? напрмер 2000


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 июн 2009, 09:43 
Не в сети

Зарегистрирован: 30 май 2008, 10:21
Сообщения: 22
Карма: 0
Цитата:
не опнял что знаичт потеврждается ?? т.е на моем скрипте тоже виснет ?

да


Если сроку "/ip firewall rule billing disable [ip firewall rule billing find src-address=1.1.1.1/32]" бросить в терминал - она отработается как любая другая, символ приглашения не изменится. Таймаут не меняет ничего. Лучше вам провести лаб-тест и запулить в микротик такую команду (ну или любую другую с вложенной командой)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 июн 2009, 18:58 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Dizelsky писал(а):
Цитата:
не опнял что знаичт потеврждается ?? т.е на моем скрипте тоже виснет ?

да


Если сроку "/ip firewall rule billing disable [ip firewall rule billing find src-address=1.1.1.1/32]" бросить в терминал - она отработается как любая другая, символ приглашения не изменится. Таймаут не меняет ничего. Лучше вам провести лаб-тест и запулить в микротик такую команду (ну или любую другую с вложенной командой)


да под это дело ставить микротик нетохота , мы его снесли . проще если кто-то даст доступ ..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 июн 2009, 19:00 
Не в сети

Зарегистрирован: 30 май 2008, 10:21
Сообщения: 22
Карма: 0
дам, аська и мыло в профиле


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

Часовой пояс: UTC + 5 часов [ Летнее время ]


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

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


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

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.038s | 37 Queries | GZIP : On ]