Перейти к содержимому
Local

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

здравствуйте!

 

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

Поделиться сообщением


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

Для начала обновите версию. :lol:

 

а чего старую не заюзать? или она не рабочая в в задаче темы?

Поделиться сообщением


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

А сами то пробовали rscriptd там? Могу поспорить что нет.

Там изкоробки формат ID пользователя сломан - нужно патчить на ручнике.

 

 

а чего старую не заюзать?

Препятствий не вижу - сам пока на 2.406 :lol:

 

 

или она не рабочая в в задаче темы?

ну на девяти NASах как-то работает :)

 

ЗЫ в 2.407 rscriptd очень крут. Ждем с нетерпением rc3

Поделиться сообщением


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

угу, вдумчиво всмотритесь в фаервол - не грохается ли какой-то UDP трафик по дороге

 

Там все просто и работает.

 

Со стороны биллинга /etc/stargazer.conf

<Module remote_script>
  SendPeriod = 10
  SubnetFile =/etc/stargazer/remote_nas.conf
  Password = mypassword
  UserParams=Cash Tariff
  Port = 9999
</Module>

 

Со стороны NAS rscriptd.conf

LogFileName=/var/log/rscriptd.log
ExecutersNum=1
ConfigDir=/etc/rscriptd
Password=mypassword
Port=9999
UserTimeout=60
ScriptOnConnect=/etc/rscriptd/OnConnect
ScriptOnDisconnect=/etc/rscriptd/OnDisconnect

 

Единственное на что стоит обратить внимание что при конфиге приведенном выше OnConnect/OnDisconnect будут получать параметры в виде:

LOGIN=$1
IP=$2
CASH=$4
ID=$3

Ну и опять же chmod a+x

 

Дебужится все очень просто скажем методом

echo "CONNECT: ID-$ID;LOGIN-$LOGIN;IP-$IP;CASH-$CASH" >> /var/log/allconnect.log

 

Также помниться для rscriptd объязательно в OnConnect/OnDisconnect указывать #!/путь/к/интерпритатору

Поделиться сообщением


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

угу, вдумчиво всмотритесь в фаервол - не грохается ли какой-то UDP трафик по дороге

 

Там все просто и работает.

 

Со стороны биллинга /etc/stargazer.conf

<Module remote_script>
  SendPeriod = 10
  SubnetFile =/etc/stargazer/remote_nas.conf
  Password = mypassword
  UserParams=Cash Tariff
  Port = 9999
</Module>

 

Со стороны NAS rscriptd.conf

LogFileName=/var/log/rscriptd.log
ExecutersNum=1
ConfigDir=/etc/rscriptd
Password=mypassword
Port=9999
UserTimeout=60
ScriptOnConnect=/etc/rscriptd/OnConnect
ScriptOnDisconnect=/etc/rscriptd/OnDisconnect

 

Единственное на что стоит обратить внимание что при конфиге приведенном выше OnConnect/OnDisconnect будут получать параметры в виде:

LOGIN=$1
IP=$2
CASH=$4
ID=$3

Ну и опять же chmod a+x

 

Дебужится все очень просто скажем методом

echo "CONNECT: ID-$ID;LOGIN-$LOGIN;IP-$IP;CASH-$CASH" >> /var/log/allconnect.log

 

Также помниться для rscriptd объязательно в OnConnect/OnDisconnect указывать #!/путь/к/интерпритатору

 

каждый скрипт содержит в начале верный путь к интерпритатору

конфиги модуля и демона идентичны, стоит правило на сервере разрешающее ходить трафику на всем интерфейсе вообще, при исходящем трафике от сервера, тот же 1 удп пакет на 9999 порт

20:15:14.507714 IP 192.168.2.123.1208 > 192.168.2.101.9999: UDP, length 1048

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

далее ОнКоннект скрипт, просто вписывает дату, в лог файл, пока для дебага и этого не происходит, при коннекте юзера, если руками запустить то пашет естественно.

 

со стороны НАСа,

 

2011-03-29 15:43:48 -- +++++++++++++++++++++++++++++++++++++++++++++

2011-03-29 15:55:04 -- rscriptd v. 2.406

2011-03-29 15:55:04 -- Message queue created successfully. msgKey=5555 msgID=229376

2011-03-29 15:55:04 -- rscriptd started successfully.

2011-03-29 15:55:04 -- +++++++++++++++++++++++++++++++++++++++++++++

 

лог такой, и запущены рскриптД и старгайзнутых процессов по количеству у меня 1-2

Поделиться сообщением


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

Нет, он целиком шлет состояние всех юзеров и потом контролирует что в нем изменилось - в этом и ценность.

 

 

далее ОнКоннект скрипт, просто вписывает дату, в лог файл, пока для дебага и этого не происходит,

есть подозрение что вы не совсем верно могли заполнить SubnetFile, покажите чтоли.

 

 

Также я бы сильно-сильно рекомендовал перебрать для теста rscriptd в дебаге(gmake clean && ./build debug && gmake install-bin) - вот сразу себе и увидите наглядно что он делает и почему.

 

Можете также поставить alwaysonline какомунить юзеру чтобы быть точно уверенным что для него "по всей логике" должен сработать onconnect из удаленного rscriptd (кстати на одном хосте с самим старгейзером он у меня отказывался вобще исполнять скрипты, почему так и не понял).

Поделиться сообщением


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

))я был бы безумно рад найти ошибку в файле с сетями, но не тут то было, он прост как 1+1 и поскольку идет отправка пакета именно тогда когда я авторизуюсь, значич он верно прописан логически а синтаксис проверяется бутом процесса, я работаю всего с одним хостом, на отдельном, резервном, сервере и насе, сервер работал локально точняк.

 

192.168.12.0/24 192.168.2.101

вот содержимое файла с сетями и НАСами, при этом, инет эесесс загорается зеленым.

 

(кстати на одном хосте с самим старгейзером он у меня отказывался вобще исполнять скрипты, почему так и не понял) -- может это совпадение, у меня на этом хосто тож заинстален старгайзер, на данн момент не запущен, попробую удалить его отседава

сча попробую

Поделиться сообщением


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

Нет, он целиком шлет состояние всех юзеров и потом контролирует что в нем изменилось - в этом и ценность.

 

...

Не совсем так. Он шлет по пакету на каждое событие Connect и Disconnect и по alive-пакету на каждого подключенного пользователя. rscriptd со своей стороны по этим пакетам отслеживает состояние пользователей и выполняет необходимые скрипты.

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

Поделиться сообщением


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

...

 

(кстати на одном хосте с самим старгейзером он у меня отказывался вобще исполнять скрипты, почему так и не понял) -- может это совпадение, у меня на этом хосто тож заинстален старгайзер, на данн момент не запущен, попробую удалить его отседава

сча попробую

Наверное потому что совпадают ID для Message Queue. Если их сделать разными - должно работать.

Поделиться сообщением


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

вот это реальный дебаг, дякую! очень помогает

 

 

listener.cpp > 12:26:26 > Encryption initiated with password '123456'

listener.cpp > 12:26:26 > LISTENER::Start()

listener.cpp > 12:26:26 > Port: 9999

listener.cpp > 12:26:26 > LISTENER::PrepareNet() >>>> Start successfull.

listener.cpp > 12:26:26 > LISTENER::Run

listener.cpp > 12:26:26 > Magic: 'К■{J

listener.cpp > 12:26:26 > Incorrect password or invalid packet!

listener.cpp > 12:26:26 > LISTENER::Run

listener.cpp > 12:26:26 > Magic: 'К■{J

listener.cpp > 12:26:26 > Incorrect password or invalid packet!

listener.cpp > 12:26:26 > LISTENER::Run

 

мда, в обоих конфигах один и тот же пароль, нет никаких пробелов ни коца строки, и пишит такую фигню

Поделиться сообщением


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

...

 

(кстати на одном хосте с самим старгейзером он у меня отказывался вобще исполнять скрипты, почему так и не понял) -- может это совпадение, у меня на этом хосто тож заинстален старгайзер, на данн момент не запущен, попробую удалить его отседава

сча попробую

Наверное потому что совпадают ID для Message Queue. Если их сделать разными - должно работать.

 

 

 

это как? где смотреть и менять ? в логе rscriptd вижу такое

Message queue created successfully. msgKey=5555 msgID=655360

Поделиться сообщением


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

вот это реальный дебаг, дякую! очень помогает

 

 

listener.cpp > 12:26:26 > Encryption initiated with password '123456'

listener.cpp > 12:26:26 > LISTENER::Start()

listener.cpp > 12:26:26 > Port: 9999

listener.cpp > 12:26:26 > LISTENER::PrepareNet() >>>> Start successfull.

listener.cpp > 12:26:26 > LISTENER::Run

listener.cpp > 12:26:26 > Magic: 'К■{J

listener.cpp > 12:26:26 > Incorrect password or invalid packet!

listener.cpp > 12:26:26 > LISTENER::Run

listener.cpp > 12:26:26 > Magic: 'К■{J

listener.cpp > 12:26:26 > Incorrect password or invalid packet!

listener.cpp > 12:26:26 > LISTENER::Run

 

мда, в обоих конфигах один и тот же пароль, нет никаких пробелов ни коца строки, и пишит такую фигню

Совпадает ли архитектура сервера на котором запущен Stargazer с архитектурой сервера на котором запущен rscriptd? Не используются ли Sparc/Sparc64?

Поделиться сообщением


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

...

 

(кстати на одном хосте с самим старгейзером он у меня отказывался вобще исполнять скрипты, почему так и не понял) -- может это совпадение, у меня на этом хосто тож заинстален старгайзер, на данн момент не запущен, попробую удалить его отседава

сча попробую

Наверное потому что совпадают ID для Message Queue. Если их сделать разными - должно работать.

 

 

 

это как? где смотреть и менять ? в логе rscriptd вижу такое

Message queue created successfully. msgKey=5555 msgID=655360

Параметр ExecMsgKey. Поставить что-то отличное от 5555.

Поделиться сообщением


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

вот это реальный дебаг, дякую! очень помогает

 

 

listener.cpp > 12:26:26 > Encryption initiated with password '123456'

listener.cpp > 12:26:26 > LISTENER::Start()

listener.cpp > 12:26:26 > Port: 9999

listener.cpp > 12:26:26 > LISTENER::PrepareNet() >>>> Start successfull.

listener.cpp > 12:26:26 > LISTENER::Run

listener.cpp > 12:26:26 > Magic: 'К■{J

listener.cpp > 12:26:26 > Incorrect password or invalid packet!

listener.cpp > 12:26:26 > LISTENER::Run

listener.cpp > 12:26:26 > Magic: 'К■{J

listener.cpp > 12:26:26 > Incorrect password or invalid packet!

listener.cpp > 12:26:26 > LISTENER::Run

 

мда, в обоих конфигах один и тот же пароль, нет никаких пробелов ни коца строки, и пишит такую фигню

Совпадает ли архитектура сервера на котором запущен Stargazer с архитектурой сервера на котором запущен rscriptd? Не используются ли Sparc/Sparc64?

 

Linux reserv 2.6.26-2-686 #1 SMP Sat Nov 20 23:06:30 UTC 2010 i686 GNU/Linux -- rscriptd

FreeBSD odex.freenet.od.ua 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Thu Sep 16 21:19:52 UTC 2010 root@:/usr/src/sys/i386/compile/FREENET i386 -- stargazer

насколько мне известно нет такого добра, вроде оба дуалкора интеловых

 

поменял ExecMsgKey=4444, сообщения все те же, ничего не поменялось в сторону улучшения

Поделиться сообщением


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

Есть сервер с базой и stg-2.409-rc2. Включен модуль remote_script. В конфиге remote_script.conf указал передаваемые параметры: 

UserParams = Passive

Есть удаленный сервер NAS. установлен rscriptd. В нем есть OnConnect и OnDosconnect, в редакции под наши нужды.

В общем не могу добиться передачи параметра Passive. Проверял передачу других параметров: Note, Phone, Userdata0...9, Credit, IP, Tariff, RealName - приходят на удаленный сервер. Параметры Login, IP, Cash, Id передаются. 

А вот Passive никак....

Подскажите что проверить надо бы мне?

Поделиться сообщением


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

Есть сервер с базой и stg-2.409-rc2. Включен модуль remote_script. В конфиге remote_script.conf указал передаваемые параметры: 

UserParams = Passive
Есть удаленный сервер NAS. установлен rscriptd. В нем есть OnConnect и OnDosconnect, в редакции под наши нужды.

В общем не могу добиться передачи параметра Passive. Проверял передачу других параметров: Note, Phone, Userdata0...9, Credit, IP, Tariff, RealName - приходят на удаленный сервер. Параметры Login, IP, Cash, Id передаются. 

А вот Passive никак....

Подскажите что проверить надо бы мне?

 

Воспроизвел у себя, буду исправлять.

Поделиться сообщением


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

Параметр Down тоже не смог передать на удаленный NAS.

Поделиться сообщением


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

Параметр Down тоже не смог передать на удаленный NAS.

Я так понимаю вы взяли стоковые примеры скриптов OnConnect/OnDisconnect за основу. По неизвестной причине, rscriptd по умолчанию передает меньше параметров. А именно, login, ip, id. То есть UserParams будут идти начиная с 4-го аргумента. В таком раскладе все передает нормально.

 

Вот только я теперь не знаю, что будет более правильно сделать: исправить скрипты (тогда непонятно почему локальные скрипты и rscriptd разные) или исправить rscriptd (и сломать обратную совместимость).

Поделиться сообщением


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

 

Параметр Down тоже не смог передать на удаленный NAS.

Я так понимаю вы взяли стоковые примеры скриптов OnConnect/OnDisconnect за основу. По неизвестной причине, rscriptd по умолчанию передает меньше параметров. А именно, login, ip, id. То есть UserParams будут идти начиная с 4-го аргумента. В таком раскладе все передает нормально.

 

Вот только я теперь не знаю, что будет более правильно сделать: исправить скрипты (тогда непонятно почему локальные скрипты и rscriptd разные) или исправить rscriptd (и сломать обратную совместимость).

 

Как вариант просто сделать проверку на стандартные параметры. Все что попадает в выборку - стандартные, все остальное - пользовательские. Тогда и совместимость останется и будет как универсальное решение.

Поделиться сообщением


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

...

Как вариант просто сделать проверку на стандартные параметры. Все что попадает в выборку - стандартные, все остальное - пользовательские. Тогда и совместимость останется и будет как универсальное решение.

Не вижу как это решает проблему.

stg: login ip cash id dirs <userparams>

rscriptd: login ip id <userparams>

Поделиться сообщением


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

Все. Понял.

Наверно корректней будет внести изменения в rscriptd

 

Считаю что данные должны передаваться в одинаковом формате для stg и rscriptd

Поделиться сообщением


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

Эв, эв - какое сломать совместимость, мсье? Народ, вообще повергает в ужас, что им придется, что-то менять, тем более не автоматически, что-то за пределами директории www/billing.

Поделиться сообщением


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

Я поддержу предложение GrDEV.

В текущей ситуации на боевых серверах трафик управляется и рулится на одном серваке для группы юзеров(серверов несколько). Решили управление свести в одно ПО для нескольких серверов доступа(NAS). В процессе подготовки серверов обнаружены недочеты(я чуть ранее писал). В итоге на данный момент из-за невозможности передать Passive пришлось начать составлять скрипт чтобы глобально переписать Userdata0(сейчас используется как идентификатор параметра услуги для администраторов сети) для передачи его на удаленный NAS.

Т.к. параметр Passive имеет значимую роль, я все же буду ждать исправления от авторов. Чтоб я мог в будущем использовать Userdata0 по текущему назначению, а Passive по прямому назначению.

Благодарности авторам за Stargazer.

Поделиться сообщением


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

Я поддержу предложение GrDEV.

В текущей ситуации на боевых серверах трафик управляется и рулится на одном серваке для группы юзеров(серверов несколько). Решили управление свести в одно ПО для нескольких серверов доступа(NAS). В процессе подготовки серверов обнаружены недочеты(я чуть ранее писал). В итоге на данный момент из-за невозможности передать Passive пришлось начать составлять скрипт чтобы глобально переписать Userdata0(сейчас используется как идентификатор параметра услуги для администраторов сети) для передачи его на удаленный NAS.

Т.к. параметр Passive имеет значимую роль, я все же буду ждать исправления от авторов. Чтоб я мог в будущем использовать Userdata0 по текущему назначению, а Passive по прямому назначению.

Благодарности авторам за Stargazer.

Тут нечего исправлять, все работает. Буду ли я приводить параметры скриптов rscriptd к параметрам скриптов stg я пока не решил. Вероятно в версии 2.4 нет.

Поделиться сообщением


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

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

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

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

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

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

Войти

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

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×