BiTel

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

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




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Логика работы passtest.sh
СообщениеДобавлено: 25 дек 2008, 19:10 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
Уважаемые разработчики, объясните пожалуйста логику работы 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

немного не понятно :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 26 дек 2008, 16:24 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
bump!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 29 дек 2008, 13:20 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
неужели никто не знает как работает 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 имя_юзера

или еще какого иного запроса кроме описанных выше ...
уважаемые разработчики, разъясните, пожалуйста!


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

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
Код:
        if ( login != null )
        {
            // Для Cisco 5350 при проверки передается код сессии,
            // возращает 2 если данный логин на линии
            if ( "2".equals( login ) )
                responseOK = true;
            // для остальных посылаем номер порта или процесса,
            // возращает ЛОГИН
            else if ( login.equals( loginName ) )
                responseOK = true;
        }


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 29 дек 2008, 17:30 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
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

или нет? а то я туда хотел мониторинг кол-ва подключенных юзеров прикрутить ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 29 дек 2008, 17:34 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
Код:
@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() + " ]" );
        }
    }


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 29 дек 2008, 17:37 
Не в сети
Разработчик

Зарегистрирован: 07 апр 2007, 23:51
Сообщения: 4494
Откуда: Уфа, Россия
Карма: 187
Цитата:
P.S. вопрос в догонку - используется где либо
.1.3.6.1.4.1.2021.255.0
или нет? а то я туда хотел мониторинг кол-ва подключенных юзеров прикрутить ...


если у девайса нет нулевого процесса или порта - то не используется


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 29 дек 2008, 18:32 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
спасибо! теперь абсолютно все встало на свои места :)


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

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


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

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


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

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