forum.bitel.ru http://forum.bitel.ru/ |
|
Логика работы passtest.sh http://forum.bitel.ru/viewtopic.php?f=5&t=1761 |
Страница 1 из 1 |
Автор: | snark [ 25 дек 2008, 19:10 ] |
Заголовок сообщения: | Логика работы passtest.sh |
Уважаемые разработчики, объясните пожалуйста логику работы passtest.sh. См. комментарии прямо в коде скрипта: Код: #!/bin/sh killscript=/usr/local/libexec/mpd/closebund.sh date=/bin/date ls=/bin/ls cut=/usr/bin/cut logfile=/var/log/snmpget.log rundir=/var/run/mpd login='' tmpdir=/tmp echo "$($date) $*" >> $logfile if [ "$1" = "-s" ]; then # если получен запрос вида: # param 1: -s # param 2: .1.3.6.1.4.1.2021.255.1 # param 3: integer # param 4: 2 # то тогда проверяем 4-й параметр: if [ -z "$4" ] ; then # если 4-й параметр - пустая строка, то выходим exit fi # если 4-й параметр - не пустая строка, то запускаем скрипт сброса и выходим $killscript $4 exit else # если получен запрос вида: # param 1: -g # param 2: .1.3.6.1.4.1.2021.255.1 # то начинаем формировать ответ: # вписываем во 2-й параметр полученный OID echo "$2" # вписываем параметр string echo "string" for i in $($ls -1 $rundir/); do if [ "x$i" = "xng${2##*.}" ] ; then login=$($cut -f 1 -d ' ' < $rundir/$i) break fi done # вписываем либо "-" либо логин if [ -z "$login" ]; then echo "-" else echo $login fi fi При запросе OID-а .1.3.6.1.4.1.2021.255.1 БГБ сбрасывает соединение - это понятно, но для чего формируется строка вида: Код: .1.3.6.1.4.1.2021.255.1 string логин_юзера Правильно ли я понимаю что это для проверки существования подключения пользователя? Для чего используется запрос вида: Код: param 1: -g
param 2: .1.3.6.1.4.1.2021.255.2 немного не понятно ![]() |
Автор: | snark [ 26 дек 2008, 16:24 ] |
Заголовок сообщения: | |
bump! |
Автор: | snark [ 29 дек 2008, 13:20 ] |
Заголовок сообщения: | |
неужели никто не знает как работает bitel.billing.server.processor.SNMPNASConnectionInspectorType5 ? объясню зачем это нужно - сейчас я пишу скрипт сброса под mpd5 и мне очень нужно знать что и когда шлет биллинг и какие данные он ожидает получить! то что сбрасывает по Код: .1.3.6.1.4.1.2021.255.1 i номер_порта это понятно, но как он проверяет? пока что у меня создатся впечатление что тупым перебором ответов, т.к. я еще ни разу не видел запроса Код: .1.3.6.1.4.1.2021.255 i номер_порта или Код: .1.3.6.1.4.1.2021.255 s имя_юзера
или еще какого иного запроса кроме описанных выше ... уважаемые разработчики, разъясните, пожалуйста! |
Автор: | skn [ 29 дек 2008, 16:38 ] |
Заголовок сообщения: | |
Код: if ( login != null )
{ // Для Cisco 5350 при проверки передается код сессии, // возращает 2 если данный логин на линии if ( "2".equals( login ) ) responseOK = true; // для остальных посылаем номер порта или процесса, // возращает ЛОГИН else if ( login.equals( loginName ) ) responseOK = true; } |
Автор: | snark [ 29 дек 2008, 17:30 ] |
Заголовок сообщения: | |
skn писал(а): Код: // для остальных посылаем номер порта или процесса т.е. я правильно понимаю что Вы посылая: Код: .1.3.6.1.4.1.2021.255.2 шлете: Цитата: .1.3.6.1.4.1.2021.255.номер_порта или не правильно? skn писал(а): Код: // возращает ЛОГИН это я из кода скрипта уже понял, я просто не понял где именно шлется проверка ![]() P.S. вопрос в догонку - используется где либо Цитата: .1.3.6.1.4.1.2021.255.0
или нет? а то я туда хотел мониторинг кол-ва подключенных юзеров прикрутить ... |
Автор: | skn [ 29 дек 2008, 17:34 ] |
Заголовок сообщения: | |
Код: @Override
protected void sendCheckRequest( NASConnection connection ) { DialUpSessionRealtime session = (DialUpSessionRealtime)connection.getSession(); int ver = context.getVersion(); try { OneGetPdu getPdu = new OneGetPdu( context ); getPdu.addOid( snmp_oid_check + "." + session.getNasPort() ); getPdu.addObserver( new SNMPNASConnectionObserver( ver, connection, this ) ); getPdu.send(); session.addLogDebug( "SNMP check request: " + snmp_oid_check + "." + session.getNasPort() ); } catch( Exception ex ) { session.addLogError( "SNMP check request [ SNMP ver. " + ver + ", host=" + getHost() + ", msg=" + ex.getMessage() + " ]" ); } } @Override public void sendKillRequest( NASConnection connection ) { DialUpSessionRealtime session = (DialUpSessionRealtime)connection.getSession(); try { OneSetPdu setPdu = new OneSetPdu( context ); setPdu.addOid( snmp_oid_kill, new AsnInteger( CommonUtils.parseIntString( session.getNasPort(), -1 ) ) ); setPdu.send(); session.addLogInfo( "SNMP reset request: set " + snmp_oid_kill + " i " + session.getNasPort() ); } catch( Exception ex ) { session.addLogError( "SNMP reset request [ SNMP ver." + context.getVersion() + ", host=" + getHost() + ", msg=" + ex.getMessage() + " ]" ); } } |
Автор: | skn [ 29 дек 2008, 17:37 ] |
Заголовок сообщения: | |
Цитата: P.S. вопрос в догонку - используется где либо
.1.3.6.1.4.1.2021.255.0 или нет? а то я туда хотел мониторинг кол-ва подключенных юзеров прикрутить ... если у девайса нет нулевого процесса или порта - то не используется |
Автор: | snark [ 29 дек 2008, 18:32 ] |
Заголовок сообщения: | |
спасибо! теперь абсолютно все встало на свои места ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |