Перейти до

rscriptd


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

На сколько я понял код отправляет параметры при дисконнекте пользователя.

Нет, он исправляет проблему отправки неправильных параметров при дисконнекте. Фактически раньше при дисконнекте отправлялись те которые были при коннекте.
Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 87
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

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

:facepalm:  :facepalm:  :facepalm:  спасибо madf глаза открыл!

я ж сам командой install убил все конфиги...и не проверив пишу на форум..... :lol:  :lol:  :lol:  :lol:

(Sh)it happens...
Ссылка на сообщение
Поделиться на других сайтах

Ну зачем так грубо...)

Вопросик ещё. (Доберусь до железок дня через два-три...)

Какие параметры теперь можно передавать?

Те-же, что и раньше, те-же что в документации — любые.
Ссылка на сообщение
Поделиться на других сайтах

Что-то странное...

Запустил виндовый конфигуратор Старгейзера (на компе с WIN-7), вроде всех юзеров в таблице вижу. Типа все ОК.

Но  на попытку изменения любого параметра выдает сообщение "Неверное значение..."

Перегрузил сервер и  комп с конфигуратором. Но не помогло...

Что проверить надо... Где может быть проблема?

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

Это понятно, что проблема либо виндового конфигуратора либо на сервере со stargazer-ом что-то.

Базу читает, показывает. А менять что либо невозможно. Права на файлы баз как был так и есть.

Пробовал расширить до 777 - не помогло...

chmod -R 777 /var/stargazer/users/

Пользователя добавляет. Но тут же открываю на редактирование - выдает "Неверное значение...". Удаление пользователя проходит без проблем.

Далее провел сборку заново(сохранив свои конфиги):

#tar zxvf stg-2.409-rc2.tar.gz
#cd stg-2.409-rc2
#cd projects/stargazer/ 
#env CC=clang CXX=clang++ sh build
#gmake install

Запускаю с чистой базой, где всего один юзер. И пробую редактировать. Но не тут-то было... Получил опять "Неверное значение....".

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

Это понятно, что проблема либо виндового конфигуратора либо на сервере со stargazer-ом что-то.

Базу читает, показывает. А менять что либо невозможно. Права на файлы баз как был так и есть.

Пробовал расширить до 777 - не помогло...

chmod -R 777 /var/stargazer/users/
Пользователя добавляет. Но тут же открываю на редактирование - выдает "Неверное значение...". Удаление пользователя проходит без проблем.

Далее провел сборку заново(сохранив свои конфиги):

#tar zxvf stg-2.409-rc2.tar.gz
#cd stg-2.409-rc2
#cd projects/stargazer/ 
#env CC=clang CXX=clang++ sh build
#gmake install
Запускаю с чистой базой, где всего один юзер. И пробую редактировать. Но не тут-то было... Получил опять "Неверное значение....".

 

Виндовый конфигуратор — очень древняя штука. Последние изменения в нем были в 2008-м году и с каждым выходом новой винды я надеюсь что он наконец умрет. К сожалению, у Windows очень хорошо с обратной совместимостью :)

 

А что в логе stg при таких ошибках?

Работает ли sgconf?

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

А что в логе stg при таких ошибках?

При попытке смены параметров из виндового конфигуратора - нет сообщений в лог.

При изменении парамтера с консольного(sgconf) конфигуратора - есть записи о смене параметра.

 

Работает ли sgconf? 

Работает. Редактирование параметров и просмотр.

 

Tcpdump на интерейсе, через который работает виндовый конфигуратор, наблюдаются пакеты от ПК до сервера и обратно после нажатия кнопки "Обновить" виндового конфигуратора. При других действиях нет пакетов от ПК до сервера(и обратно соответственно).

 

Про виндовый конфигуратор:

Делаю удаление юзера. Выдает сообщение, что юзер удален. В логе появилась запись об удалении.

Захожу в директорию базы STG. Но директория удаленного юзера на месте! В директории "deleted-users" удаленного юзера не появилось.

Нажимаю кнопку "Обновить" виндового конифгуратора...не вижу "удаленного" юзера.

На сервере останавливаю Stargazer. Теперь запускаю.

Запускаю виндовый конфигуратор на ПК и нажимаю кнопку "Обновить".

Не вижу удаленного юзера.

Смотрю в директорию базы "users" - нет его!

А он теперь в директории "deleted-users".

Вот как!? 

Пробую добавить пользователя.

Делаю как обычно... Вижу по tcpdump паетики при нажатии "Готово". Нажмаю "Обновить" - юзер новый появился.

В логе Stagazer-a появились 6 строчек(added, ips, freeMb, group, password, tariffname) о добавлении юзера.

Пробуем поставить галочку "Всегда онлайн" - выдало сообщение "неверное значение". Tcpdump при этом ничего "не заметил".

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

комп с win xp и конфигуратором тоже странно ведет себя...

1. запускаю  сервер stargazer.

2. запускаю на компе конфигуратор.

3. ввожу логин  пароль и жму "ОК".

Проверяем добавление, изменение, удаление - все ок. 

4. Оставляем на некоторое время без действий всю связку. Прошло 40 минут.

5. Нажимаю кнопку "Обновить".

Вот что tcpdump показывает в это время:

14:26:45.950247 IP 50.50.50.3.1039 > 50.50.50.14.3333: Flags [R.], seq 169649317, ack 1461499317, win 0, length 0
14:27:02.158687 IP 50.50.50.3.1040 > 50.50.50.14.3333: Flags [S], seq 3329984885, win 65535, options [mss 1460,nop,nop,sackOK], length 0
14:27:02.158713 IP 50.50.50.14.3333 > 50.50.50.3.1040: Flags [S.], seq 4015658252, ack 3329984886, win 65535, options [mss 1460,sackOK,eol], length 0
14:27:02.158863 IP 50.50.50.3.1040 > 50.50.50.14.3333: Flags [.], ack 1, win 65535, length 0
14:27:02.158965 IP 50.50.50.3.1040 > 50.50.50.14.3333: Flags [P.], seq 1:5, ack 1, win 65535, length 4
14:27:02.258462 IP 50.50.50.14.3333 > 50.50.50.3.1040: Flags [.], ack 5, win 65535, length 0

Виндовый конфигуратор зависает.

Приходится убивать процесс после ожидания почти 5 минут.

Вот что показывает в момент прекращения процесса:

14:27:22.293596 IP 50.50.50.3.1040 > 50.50.50.14.3333: Flags [R.], seq 5, ack 1, win 0, length 0

Что-то и чего-то я не понимаю...

Подозревал что фаервол мешает. Проверял с открытым фаерволом( any to any) получил те же самые результаты на обоих компах.

 

 

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

При попытке смены параметров из виндового конфигуратора - нет сообщений в лог.

Я проверю еще раз, но сомневаюсь что получится воспроизвести. У меня все работало.

 

Делаю удаление юзера. Выдает сообщение, что юзер удален. В логе появилась запись об удалении. Захожу в директорию базы STG. Но директория удаленного юзера на месте! В директории "deleted-users" удаленного юзера не появилось. Нажимаю кнопку "Обновить" виндового конифгуратора...не вижу "удаленного" юзера.

Это нормально, так оно и работет. Пользователь помечается как удаленный и через некоторое время удаляется физически.

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

Виндовый конфигуратор зависает.

Понятия не имею что там у вас происходит. Конфигуратор не держит открытым соединение.
Ссылка на сообщение
Поделиться на других сайтах
  • 8 months later...

Вернулся к проблеме с rscriptd. К тому , что он не передает параметры типа Passive, Down и другие.

Проверил сегодня на реальном железе с FreeBSD 10.3-RELEASE #0.

Пропатченный rscriptd Вашим скриптом https://local.com.ua/forum/topic/26746-rscriptd/?p=963329

Конфиг mod_remote_script.conf:

# Enable the module for remote execution of scripts OnConnect and OnDisconnect "mod_remote_script.so"
<Module remote_script>
    # The time interval between sending confirmations that the user is online
    # Parametr: required
    # Values: 10 ... 600 (seconds)
    # Default: 60
    # Maximum: 2147483647
    # postavleno: 1 god
    #SendPeriod = 3153600
    SendPeriod = 600

    # Define mapping between subnet(s) and remote server(s)
    # File format: <subnet> <Router1> <Router2> ...
    # Example:
    # 192.168.1.0/24 192.168.1.7 192.168.1.8
    # 192.168.2.0/24 192.168.2.5 192.168.2.6 192.168.2.7
    # 192.168.3.0/24 192.168.3.5
    # 192.168.4.0/24 192.168.4.5
    # Parametr: required
    # Values: file path
    # Default: subnets
    SubnetFile = /etc/stargazer/subnets

    # The password to encrypt packets between the stg-server and remote server
    # Parameter: required
    # Values: any
    # Default: 123456
    Password = 123456

    # Define which user parameters are transferred to a remote server in addition to
    # other parameters that transfered by default (ID, IP, Login, Cash, Dirs).
    # Note: Parameter can be blank.
    # Parameter: required
    # Values: Cash, FreeMb, Passive, Disabled, AlwaysOnline, TariffName,
    # NextTariff, Address, Note, Group, Email, RealName, Credit, EnabledDirs,
    # Userdata0...Userdata9
    # Default: Cash Tariff EnabledDirs

    UserParams = Passive Userdata0
    
    ###UserParams = Login IP Passive Tariff Disabled AlwaysOnline Userdata6
    # NextTariff, Address, Note, Group, Email, RealName, Credit, EnabledDirs,
    # Userdata0...Userdata9

    # Port on which the server interacts with remote server
    # Parameter: required
    # Value: 1...65535
    # Default: 9999
    Port = 9999
</Module>

Изменил скрипты на NAS-е в директории /etc/rscriptd так:

# cat OnConnect
#!/bin/sh

FwCMD="/sbin/ipfw"
VS=$#
login=$1
ip=$2
up4=$4
up5=$5
#echo "`date +%Y.%m.%d-%H:%M:%S` all=$VS $login $ip up4=$up4 up5=$up5" >> /usr/var/stargazer/users/allconnect.log

case $ip in
172.16.*.*)
echo "`date +%Y.%m.%d-%H:%M:%S` vkl $login $ip up4=$up4" >> /usr/var/stargazer/users/allconnect.log
;;
esac

и

# cat OnDisconnect
#!/bin/sh

FwCMD="/sbin/ipfw"
VS=$#
login=$1
ip=$2
up4=$4
up5=$5
echo "`date +%Y.%m.%d-%H:%M:%S` all=$VS DOWN $login $ip up4=$up4 up5=$up5" >> /usr/var/stargazer/users/allconnect.log

case $ip in
172.16.*.*)
echo "`date +%Y.%m.%d-%H:%M:%S` vikl DOWN $login $ip up4=$up4" >> /usr/var/stargazer/users/allconnect.log
;;
esac

В этих скрипта up4 это параметр Passive, up5 это UserData-0.

И получаем в логировании такое при включении:


2017.08.17-09:50:52 all=5 DOWN "Логин" 172.16.101.39 up4=0 up5=авторизатор+
2017.08.17-09:51:17 vkl "Логин" 172.16.101.39 up4=0

и при отключении:

2017.08.17-09:52:25 all=5 DOWN "Логин" 172.16.301.39 up4=0 up5=авторизатор
2017.08.17-09:52:17 vikl DOWN "Логин" 172.16.101.39 up4=0

Причем OnDisconnect практически всегда отрабатывает сразу после OnConnect. Что до патча, что после.

Т.е. включаю абонента. Отрабатывает OnConnect. А через минуту отработал OnDisconnect.

Вот  реальный пример:

2017.08.17-09:52:02 all=4 DOWN STR37-1-113 172.16.117.29 up4=0 up5=авторизатор+
2017.08.17-09:52:02 vkl STR37-1-113 172.16.117.29 up4=0
2017.08.17-09:53:02 all=4 DOWN STR37-1-113 172.16.117.29 up4=0 up5=
2017.08.17-09:53:02 vikl DOWN STR37-1-113 172.16.117.29 up4=0

Так и не передаётся параметр Passive, который ну очень нужен. В следствии того, что, как уже писал, скрипты отрабатывают друг за другом с периодом в одну минут.

Далее по мануалу в разделе "Описание параметров модуля Remote  Script  Executer (remote_script)" Есть упоминание параметра EnabledDirs.

Что за параметр и где взять для него данные?

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

1. Понятия не имею почему у вас за коннектом сразу идет дисконнект. Может связь пропадает, или хз.

2. Passive передается. У вас там везде нолики нарисованы.

3. Версия Stg?

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

Ну похоже на:

# cat /etc/rscriptd/rscriptd.conf | grep User
UserTimeout=120

Может банально количество юзеров не успевают инитится за 60 секунд, и оно делает дисконнет всех и по новой коннектит.

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

1. Понятия не имею почему у вас за коннектом сразу идет дисконнект. Может связь пропадает, или хз.

2. Passive передается. У вас там везде нолики нарисованы.

3. Версия Stg?

Связь не пропадает. Величина пинга менее 1мс...)

Passive передается везде ноликами, но точно знаю у кого есть единичка и вот место единички приходит ноль.

Даже когда вручную делаю заморозку, то все равно передается нолик. На сервер управления, где сам Stargazer, в логах видно изменение параметра passiveс 0 на 1 и наоборот.

Версия stg-2.409-rc2

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

Ну похоже на:

# cat /etc/rscriptd/rscriptd.conf | grep User
UserTimeout=120

Может банально количество юзеров не успевают инитится за 60 секунд, и оно делает дисконнет всех и по новой коннектит.

Этот параметр давно выставлен как 600. Опытным путем получено на работающем серваке...

Хотя может и уже не хватает....абонентов добавилось немного.

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

Ну давайте начнем с того что при коннекте Passive никогда не будет 1, потому что такие юзеры никогда не смогут законнектиться. При дисконнекте Passive может быть 1 — если юзер был онлайн и его „заморозили“. Вы именно так экспериментируете?

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

Да, так и провожу эксперимент.

Юзер в режиме "всегда онлайн", я его замораживаю.

В логе старгейзера вижу смену параметра, а вот на NAS приходит ноль вместо единички.

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

ну по крайне мере увеличился размер rscriptd и дата, и его потом скопировал в /usr/sbin.

rscriptd.rar

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

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

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

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

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

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

Вхід

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

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.


×
×
  • Створити нове...