Jump to content

rscriptd


Recommended Posts

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

 

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

Link to post
Share on other sites
  • Replies 87
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

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

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

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

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

 

 

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

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

 

 

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

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

 

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

Link to post
Share on other sites
идет пакет от сервера

угу, вдумчиво всмотритесь в фаервол - не грохается ли какой-то 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 указывать #!/путь/к/интерпритатору

Link to post
Share on other sites
идет пакет от сервера

угу, вдумчиво всмотритесь в фаервол - не грохается ли какой-то 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

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

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

 

 

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

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

 

 

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

 

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

Link to post
Share on other sites

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

 

192.168.12.0/24 192.168.2.101

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

 

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

сча попробую

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

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

 

...

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

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

Link to post
Share on other sites

...

 

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

сча попробую

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

Link to post
Share on other sites

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

 

 

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

 

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

Link to post
Share on other sites

...

 

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

сча попробую

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

 

 

 

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

Message queue created successfully. msgKey=5555 msgID=655360

Link to post
Share on other sites

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

 

 

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?

Link to post
Share on other sites

...

 

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

сча попробую

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

 

 

 

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

Message queue created successfully. msgKey=5555 msgID=655360

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

Link to post
Share on other sites

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

 

 

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, сообщения все те же, ничего не поменялось в сторону улучшения

Link to post
Share on other sites
  • 5 years later...

Есть сервер с базой и 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 никак....

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

Link to post
Share on other sites

Есть сервер с базой и 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 никак....

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

 

Воспроизвел у себя, буду исправлять.
Link to post
Share on other sites

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

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

 

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

Link to post
Share on other sites

 

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

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

 

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

 

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

Link to post
Share on other sites

...

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

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

stg: login ip cash id dirs <userparams>

rscriptd: login ip id <userparams>

Link to post
Share on other sites

Все. Понял.

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

 

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

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

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

Link to post
Share on other sites

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

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

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

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

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...