Jump to content

stg-2.4


Recommended Posts

Не выполняется скрипт OnDisconnect когда заканчиваются деньги на счету начинает считать деньги в минус, если переподключиться то как и нужно подключается но в инет не пускает (скрипт OnConnect не срабатывает).

Ок, сенкс. Ща проверю.

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

Top Posters In This Topic

собрал на FreeBSD 5.4 кажысь собралось без глюков

запускал из директории:

/usr/local/src/stg-2.4-2005.12.24-01.08.47/projects/stargazer/

командой ./stargazer

 

в /var/log/stargazer.log

 

2005-12-25 22:05:02 -- Stg v. Stg 2.4 alpha.02

2005-12-25 22:05:02 -- Timer thread started successfully.

2005-12-25 22:05:02 -- Storage plugin: file_store v.1.00. Loading successfull.

2005-12-25 22:05:02 -- Cannot read conf for user CVS.

 

 

и судя по всему тут он и отваливается так ка по ps -x|grep stargazer я его не вижу.

Link to post
Share on other sites
в /var/log/stargazer.log

 

2005-12-25 22:05:02 -- Stg v. Stg 2.4 alpha.02

2005-12-25 22:05:02 -- Timer thread started successfully.

2005-12-25 22:05:02 -- Storage plugin: file_store v.1.00. Loading successfull.

2005-12-25 22:05:02 -- Cannot read conf for user CVS.

 

 

и судя по всему тут он и отваливается так ка по ps -x|grep stargazer я его не вижу.

Проблему решил, убил в /var/stargazer/users директорию test

 

stg стартанул, буду ковырять далее.

 

2005-12-25 22:21:36 -- Stg v. Stg 2.4 alpha.02

2005-12-25 22:21:36 -- Timer thread started successfully.

2005-12-25 22:21:36 -- Storage plugin: file_store v.1.00. Loading successfull.

2005-12-25 22:21:36 -- Users started successfully.

2005-12-25 22:21:36 -- Traffcounter started successfully.

2005-12-25 22:21:36 -- Plugin: bpf_cap v.1.0. Start successfull.

2005-12-25 22:21:36 -- Plugin: Always Online authorizator v.0.9. Start successfull.

2005-12-25 22:21:36 -- Plugin: InetAccess authorizator v.0.9. Start successfull.

2005-12-25 22:21:36 -- Plugin: Stg configurator v.0.01. Start successfull.

2005-12-25 22:21:36 -- Stg started successfully.

2005-12-25 22:21:36 -- +++++++++++++++++++++++++++++++++++++++++++++

Link to post
Share on other sites
Пробую заводить нового Юзера, ввожу логин, IP-адрес, интерфейс, генерирую пароль, ввожу начальное количество денег в итоге: в поле IP-адрес вместо адреса *, денег 0,00, вместо пароля *_EMPTY_PASSWORD_*, вместо тарифа *_EMPTY_TARIFF_*, захожу в редактирование пользователя прописываю IP-адрес, ввожу количество денег выбираю тарифный план - все работает, пробовал конфигураторами, 1.55.7 и 1.60.7 (1,60,7 еще и ошибку периодически выдает Access violation at addres 0057509C in module 'sgconfig.exe'. Read of address 69726174).

p.s. сервер не падает

подтверждаю, ос БЗД 5.4, ситуация та же, создаю пользователя, ввожу параметры, жму ок. а у юзера все поля пустые. Захожу обратно кофигуратором, проставляю все по новой, эву ок, после этого в выскочившем окошке говорю что изминения должны вступить в силу немедленно, и все ок. Похоже на то что не полностью отрабатывает скрипт OnUserAdd.

Вообщем критичным багом не считается, все ок, поправить два сек времени.

Link to post
Share on other sites

Вопрос, работает ли стг2.4 с mysql базой?? На сколько я понял по собственныму осмотру пока не работает, нет модуля, есть только подуль для файловой базы.

 

Очень уж важное для меня дело, когда будет сие творение???

Link to post
Share on other sites

Пробую заводить нового Юзера, ввожу логин, IP-адрес, интерфейс, генерирую пароль, ввожу начальное количество денег в итоге: в поле IP-адрес вместо адреса *, денег 0,00, вместо пароля *_EMPTY_PASSWORD_*, вместо тарифа *_EMPTY_TARIFF_*, захожу в редактирование пользователя прописываю IP-адрес, ввожу количество денег выбираю тарифный план - все работает, пробовал конфигураторами, 1.55.7 и 1.60.7 (1,60,7 еще и ошибку периодически выдает Access violation at addres 0057509C in module 'sgconfig.exe'. Read of address 69726174).

p.s. сервер не падает

 

по поводу этого

 

это несоответствие старого конфигуратора и нового сервера.

как Борис выпустит новый конфигуратор, так все эти глюки уйдут.

 

что касается работы с базами, наверно будет, но пока все силы брошены на вылизывание 2,4

Link to post
Share on other sites
./stargazer

./stargazer: line 8: /etc/init.d/functions: No such file or directory

./stargazer: line 11: /etc/sysconfig/network: No such file or directory

./stargazer: line 18: [: =: unary operator expected

 

 

 

Debian Sarge 3.1

Это похоже ты запускаешь стг с помощью /etc/init.d/stargazer.

Запускай лучше сам бинарник. Эти скрипты разные для разных осей, и я ими еще не занимался. Так, что может быть всякое :)

fbi:/opt/stg-2.4-2005.12.24-01.08.47/projects/stargazer# ./startstg

./startstg: line 3: ./stargazer: No such file or directory

Star failed

блин поличите под sarge... сколько это стоить будет ?

зппусти как написано в read.me

bi:/opt/stg-2.4-2005.12.24-01.08.47/projects/stargazer/inst/linux/etc/init.d# ./stargazer /opt/stg-2.4-2005.12.24-01.08.47/projects/stargazer/inst/linux/etc/stargazer/stargazer.conf

./stargazer: line 8: /etc/init.d/functions: No such file or directory

./stargazer: line 11: /etc/sysconfig/network: No such file or directory

./stargazer: line 18: [: =: unary operator expected

Link to post
Share on other sites

opt/stg-2.4-2005.12.24-01.08.47/projects/stargazer# make

Makefile:96: deps: No such file or directory

In file included from ../../include/user_conf.h:23,

from ../../include/base_store.h:14,

from admin.h:56,

from admin.cpp:37:

../../include/user_ips.h:33:20: common.h: No such file or directory

In file included from ../../include/base_store.h:17,

from admin.h:56,

from admin.cpp:37:

../../include/base_settings.h:6:23: conffiles.h: No such file or directory

In file included from admin.cpp:37:

admin.h:57:24: stg_logger.h: No such file or directory

admin.cpp:38:20: common.h: No such file or directory

In file included from ../../include/user_conf.h:23,

from ../../include/base_store.h:14,

from admin.h:56,

from admins.h:38,

from admins.cpp:48:

../../include/user_ips.h:33:20: common.h: No such file or directory

In file included from ../../include/base_store.h:17,

from admin.h:56,

from admins.h:38,

from admins.cpp:48:

../../include/base_settings.h:6:23: conffiles.h: No such file or directory

In file included from admins.h:38,

from admins.cpp:48:

admin.h:57:24: stg_logger.h: No such file or directory

admins.cpp:50:20: common.h: No such file or directory

In file included from main.cpp:45:

tariff2.h:41:20: common.h: No such file or directory

In file included from ../../include/user_conf.h:23,

from ../../include/base_store.h:14,

from admin.h:56,

from tariff2.h:42,

from main.cpp:45:

../../include/user_ips.h:33:20: common.h: No such file or directory

In file included from ../../include/base_store.h:17,

from admin.h:56,

from tariff2.h:42,

from main.cpp:45:

../../include/base_settings.h:6:23: conffiles.h: No such file or directory

In file included from tariff2.h:42,

from main.cpp:45:

admin.h:57:24: stg_logger.h: No such file or directory

In file included from main.cpp:45:

tariff2.h:43:24: stg_logger.h: No such file or directory

In file included from main.cpp:46:

settings.h:42:20: common.h: No such file or directory

settings.h:43:23: conffiles.h: No such file or directory

settings.h:45:24: stg_logger.h: No such file or directory

In file included from user.h:53,

from main.cpp:47:

user_property.h:18:24: stg_logger.h: No such file or directory

user_property.h:20:20: common.h: No such file or directory

user_property.h:23:24: stg_logger.h: No such file or directory

In file included from main.cpp:48:

users.h:52:24: stg_logger.h: No such file or directory

main.cpp:50:20: common.h: No such file or directory

In file included from main.cpp:51:

traffcounter.h:33:24: stg_logger.h: No such file or directory

main.cpp:53:24: stg_logger.h: No such file or directory

curr_ip.cpp:2:20: common.h: No such file or directory

In file included from settings.cpp:38:

settings.h:42:20: common.h: No such file or directory

settings.h:43:23: conffiles.h: No such file or directory

In file included from settings.h:44,

from settings.cpp:38:

base_settings.h:11:23: conffiles.h: No such file or directory

In file included from settings.cpp:38:

settings.h:45:24: stg_logger.h: No such file or directory

settings.cpp:39:20: common.h: No such file or directory

settings.cpp:40:23: conffiles.h: No such file or directory

stg_timer.cpp:6:20: common.h: No such file or directory

In file included from tariff2.cpp:42:

tariff2.h:41:20: common.h: No such file or directory

In file included from ../../include/user_conf.h:23,

from ../../include/base_store.h:14,

from admin.h:56,

from tariff2.h:42,

from tariff2.cpp:42:

../../include/user_ips.h:33:20: common.h: No such file or directory

In file included from ../../include/base_store.h:17,

from admin.h:56,

from tariff2.h:42,

from tariff2.cpp:42:

../../include/base_settings.h:6:23: conffiles.h: No such file or directory

In file included from tariff2.h:42,

from tariff2.cpp:42:

admin.h:57:24: stg_logger.h: No such file or directory

In file included from tariff2.cpp:42:

tariff2.h:43:24: stg_logger.h: No such file or directory

tariff2.cpp:43:23: conffiles.h: No such file or directory

tariff2.cpp:44:20: common.h: No such file or directory

In file included from tariff2.cpp:45:

settings.h:42:20: common.h: No such file or directory

settings.h:43:23: conffiles.h: No such file or directory

settings.h:45:24: stg_logger.h: No such file or directory

In file included from user.h:53,

from users.h:50,

from tariff2.cpp:46:

user_property.h:18:24: stg_logger.h: No such file or directory

user_property.h:20:20: common.h: No such file or directory

user_property.h:23:24: stg_logger.h: No such file or directory

In file included from tariff2.cpp:46:

users.h:52:24: stg_logger.h: No such file or directory

In file included from traffcounter.cpp:41:

tariff2.h:41:20: common.h: No such file or directory

In file included from ../../include/user_conf.h:23,

from ../../include/base_store.h:14,

from admin.h:56,

from tariff2.h:42,

from traffcounter.cpp:41:

../../include/user_ips.h:33:20: common.h: No such file or directory

In file included from ../../include/base_store.h:17,

from admin.h:56,

from tariff2.h:42,

from traffcounter.cpp:41:

../../include/base_settings.h:6:23: conffiles.h: No such file or directory

In file included from tariff2.h:42,

from traffcounter.cpp:41:

admin.h:57:24: stg_logger.h: No such file or directory

In file included from traffcounter.cpp:41:

tariff2.h:43:24: stg_logger.h: No such file or directory

In file included from traffcounter.cpp:42:

traffcounter.h:33:24: stg_logger.h: No such file or directory

In file included from users.h:49,

from traffcounter.h:34,

from traffcounter.cpp:42:

settings.h:42:20: common.h: No such file or directory

settings.h:43:23: conffiles.h: No such file or directory

settings.h:45:24: stg_logger.h: No such file or directory

In file included from user.h:53,

from users.h:50,

from traffcounter.h:34,

from traffcounter.cpp:42:

user_property.h:18:24: stg_logger.h: No such file or directory

user_property.h:20:20: common.h: No such file or directory

user_property.h:23:24: stg_logger.h: No such file or directory

In file included from traffcounter.h:34,

from traffcounter.cpp:42:

users.h:52:24: stg_logger.h: No such file or directory

traffcounter.cpp:43:20: common.h: No such file or directory

In file included from user.h:47,

from user.cpp:47:

tariff2.h:41:20: common.h: No such file or directory

In file included from ../../include/user_conf.h:23,

from ../../include/base_store.h:14,

from admin.h:56,

from tariff2.h:42,

from user.h:47,

from user.cpp:47:

../../include/user_ips.h:33:20: common.h: No such file or directory

In file included from ../../include/base_store.h:17,

from admin.h:56,

from tariff2.h:42,

from user.h:47,

from user.cpp:47:

../../include/base_settings.h:6:23: conffiles.h: No such file or directory

In file included from tariff2.h:42,

from user.h:47,

from user.cpp:47:

admin.h:57:24: stg_logger.h: No such file or directory

In file included from user.h:47,

from user.cpp:47:

tariff2.h:43:24: stg_logger.h: No such file or directory

In file included from user.h:53,

from user.cpp:47:

user_property.h:18:24: stg_logger.h: No such file or directory

user_property.h:20:20: common.h: No such file or directory

In file included from user_property.h:21,

from user.h:53,

from user.cpp:47:

settings.h:42:20: common.h: No such file or directory

settings.h:43:23: conffiles.h: No such file or directory

settings.h:45:24: stg_logger.h: No such file or directory

In file included from user.h:53,

from user.cpp:47:

user_property.h:23:24: stg_logger.h: No such file or directory

In file included from user.cpp:48:

users.h:52:24: stg_logger.h: No such file or directory

user.cpp:49:20: common.h: No such file or directory

user.cpp:51:23: conffiles.h: No such file or directory

user.cpp:52:20: common.h: No such file or directory

In file included from user_property.cpp:1:

user_property.h:18:24: stg_logger.h: No such file or directory

In file included from ../../include/user_conf.h:23,

from ../../include/base_store.h:14,

from admin.h:56,

from user_property.h:19,

from user_property.cpp:1:

../../include/user_ips.h:33:20: common.h: No such file or directory

In file included from ../../include/base_store.h:17,

from admin.h:56,

from user_property.h:19,

from user_property.cpp:1:

../../include/base_settings.h:6:23: conffiles.h: No such file or directory

In file included from user_property.h:19,

from user_property.cpp:1:

admin.h:57:24: stg_logger.h: No such file or directory

In file included from user_property.cpp:1:

user_property.h:20:20: common.h: No such file or directory

In file included from user_property.h:21,

from user_property.cpp:1:

settings.h:42:20: common.h: No such file or directory

settings.h:43:23: conffiles.h: No such file or directory

settings.h:45:24: stg_logger.h: No such file or directory

In file included from user_property.cpp:1:

user_property.h:23:24: stg_logger.h: No such file or directory

In file included from users.cpp:45:

settings.h:42:20: common.h: No such file or directory

settings.h:43:23: conffiles.h: No such file or directory

In file included from settings.h:44,

from users.cpp:45:

base_settings.h:11:23: conffiles.h: No such file or directory

In file included from users.cpp:45:

settings.h:45:24: stg_logger.h: No such file or directory

In file included from user.h:47,

from users.h:50,

from users.cpp:46:

tariff2.h:41:20: common.h: No such file or directory

In file included from ../../include/user_conf.h:23,

from ../../include/base_store.h:14,

from admin.h:56,

from tariff2.h:42,

from user.h:47,

from users.h:50,

from users.cpp:46:

../../include/user_ips.h:33:20: common.h: No such file or directory

In file included from tariff2.h:42,

from user.h:47,

from users.h:50,

from users.cpp:46:

admin.h:57:24: stg_logger.h: No such file or directory

In file included from user.h:47,

from users.h:50,

from users.cpp:46:

tariff2.h:43:24: stg_logger.h: No such file or directory

In file included from user.h:53,

from users.h:50,

from users.cpp:46:

user_property.h:18:24: stg_logger.h: No such file or directory

user_property.h:20:20: common.h: No such file or directory

user_property.h:23:24: stg_logger.h: No such file or directory

In file included from users.cpp:46:

users.h:52:24: stg_logger.h: No such file or directory

users.cpp:48:20: common.h: No such file or directory

In file included from ../../include/base_plugin.h:5,

from plugin_runner.h:6,

from plugin_runner.cpp:5:

../../include/base_settings.h:6:23: conffiles.h: No such file or directory

In file included from plugin_runner.h:7,

from plugin_runner.cpp:5:

traffcounter.h:33:24: stg_logger.h: No such file or directory

In file included from users.h:49,

from traffcounter.h:34,

from plugin_runner.h:7,

from plugin_runner.cpp:5:

settings.h:42:20: common.h: No such file or directory

settings.h:43:23: conffiles.h: No such file or directory

settings.h:45:24: stg_logger.h: No such file or directory

In file included from user.h:47,

from users.h:50,

from traffcounter.h:34,

from plugin_runner.h:7,

from plugin_runner.cpp:5:

tariff2.h:41:20: common.h: No such file or directory

In file included from ../../include/user_conf.h:23,

from ../../include/base_store.h:14,

from admin.h:56,

from tariff2.h:42,

from user.h:47,

from users.h:50,

from traffcounter.h:34,

from plugin_runner.h:7,

from plugin_runner.cpp:5:

../../include/user_ips.h:33:20: common.h: No such file or directory

In file included from tariff2.h:42,

from user.h:47,

from users.h:50,

from traffcounter.h:34,

from plugin_runner.h:7,

from plugin_runner.cpp:5:

admin.h:57:24: stg_logger.h: No such file or directory

In file included from user.h:47,

from users.h:50,

from traffcounter.h:34,

from plugin_runner.h:7,

from plugin_runner.cpp:5:

tariff2.h:43:24: stg_logger.h: No such file or directory

In file included from user.h:53,

from users.h:50,

from traffcounter.h:34,

from plugin_runner.h:7,

from plugin_runner.cpp:5:

user_property.h:18:24: stg_logger.h: No such file or directory

user_property.h:20:20: common.h: No such file or directory

user_property.h:23:24: stg_logger.h: No such file or directory

In file included from traffcounter.h:34,

from plugin_runner.h:7,

from plugin_runner.cpp:5:

users.h:52:24: stg_logger.h: No such file or directory

plugin_runner.cpp:6:20: common.h: No such file or directory

plugin_runner.cpp:7:23: conffiles.h: No such file or directory

deps:1: *** пропущен разделитель. Останов.

Link to post
Share on other sites
не ридми не для крутых перцев, подумаешь что там написано СОБИРАТЬ ЧЕРЕЗ КОМАНДУ ./build

:) у всех бывает (наверное :tongue: )

 

P.S. 15 часов, полет нормальный.

Link to post
Share on other sites
2. Подключение-отключение толпами. Вопрос. У меян 20 всегда онлайнщиков. Я запускаю сервак, для всех 20 выполняется скрипт OnConnect (подключает-отключает толпами) Что с этим можно сделать? Не подключать? Или с паузой в 1 мин подключать?

2stg-34: Базара нет.

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

Link to post
Share on other sites
2. Подключение-отключение толпами. Вопрос. У меян 20 всегда онлайнщиков. Я запускаю сервак, для всех 20 выполняется скрипт OnConnect (подключает-отключает толпами) Что с этим можно сделать? Не подключать? Или с паузой в 1 мин подключать?

2stg-34: Базара нет.

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

Кстати об отключениях. Где-то с месяц назад возникла ситуация, что биллинг массово отключал юзеров, а потом подключал их обратно и делал так периодически. У меня возникло стойкое ощущение, что это связано со временем выполнения OnConnect/OnDisconnect. Дело в том, что у меня биллинг управляет двумя шлюзами и для проверки состояния второго шлюза вызывает iptables по SSH. В тот раз второй шлюз потерял инет и выполнял команды с приличной задержкой, т.к. я забыл запретить резолвинг имён. Как только запретил и ответы стали приходить без задержки, всё как рукой сняло.

PS: Не помню, было это до или после применения патча на исполнения скриптов, но если после, то:

system() выполняет команды, указанные в string, вызывая в свою очередь команду /bin/sh -c string, и возвращается, когда команда выполнена. Во время выполнения команды SIGCHLD будет заблокировано, а SIGINT и SIGQUIT будут игнорироваться. 
Edited by Wapr-Old
Link to post
Share on other sites
2. Подключение-отключение толпами. Вопрос. У меян 20 всегда онлайнщиков. Я запускаю сервак, для всех 20 выполняется скрипт OnConnect (подключает-отключает толпами) Что с этим можно сделать? Не подключать? Или с паузой в 1 мин подключать?

2stg-34: Базара нет.

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

Кстати об отключениях. Где-то с месяц назад возникла ситуация, что биллинг массово отключал юзеров, а потом подключал их обратно и делал так периодически. У меня возникло стойкое ощущение, что это связано со временем выполнения OnConnect/OnDisconnect. Дело в том, что у меня биллинг управляет двумя шлюзами и для проверки состояния второго шлюза вызывает iptables по SSH. В тот раз второй шлюз потерял инет и выполнял команды с приличной задержкой, т.к. я забыл запретить резолвинг имён. Как только запретил и ответы стали приходить без задержки, всё как рукой сняло.

PS: Не помню, было это до или после применения патча на исполнения скриптов, но если после, то:

system() выполняет команды, указанные в string, вызывая в свою очередь команду /bin/sh -c string, и возвращается, когда команда выполнена. Во время выполнения команды SIGCHLD будет заблокировано, а SIGINT и SIGQUIT будут игнорироваться. 

да это есть такой баг, самоотключение юзеров :(

 

думаю в версии 2,4 его не будет уже

Link to post
Share on other sites
это после того самого ./build

Попробуй распаковать заново исходники и сразу выполни ./build. Дложно все собраться.

Да пробовал блин ;)

Просто ну нету в Debian /etc/sysсonfig/network/

как в РН ,

там сетевые настройки /etc/network/

И описания ифесов в 1 файле - interfaces :(

так что я тут не причем

Link to post
Share on other sites

Смотрю скрипт запуска stargazer

#Source function library

. /etc/init.d/function

 

#Source networking configuration

./etc/sysconfig/network

 

:( если меняем назначение на

/etc/network (как в дебе)

то он лепит ifcfg-eth* конфиги ;)

 

 

как фиксить ;) у когото стоит Debian Sarge ?

Link to post
Share on other sites

Через 3-е суток работы стг вывалился без видимой причины в логах никаких ошибок

вот последние строчки из лога

2005-12-28 06:46:08 -- User admin 10.10.0.200 connected.

2005-12-28 07:07:03 -- User admin 10.10.0.200 disconnected.

2005-12-28 19:41:11 -- User admin 10.10.0.200 connected.

2005-12-28 19:48:41 -- User admin 10.10.0.200 disconnected.

2005-12-28 20:24:51 -- User admin 10.10.0.200 connected.

запустил заново все пошло.

Link to post
Share on other sites
2. Подключение-отключение толпами. Вопрос. У меян 20 всегда онлайнщиков. Я запускаю сервак, для всех 20 выполняется скрипт OnConnect (подключает-отключает толпами) Что с этим можно сделать? Не подключать? Или с паузой в 1 мин подключать?

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

Link to post
Share on other sites
если в текущий момент более 1го хотят подключится/отключится, то все ждут (sleep 1), пока отработает предыдущий экземпляр скрипта.

Это конечно хорошо, но вдруг именно данная копия скрипта зависла? Они ведь для разных юзеров могут разные действия выполнять, мало-ли что там происходит... Т.е. придётся писать скрипты с отработкой таймаутов, что не есть тривиально :=

ИМХО биллинг должен сам как-то отрабатывать эти ситуации, т.к. ему виднее, что в каком порядке запускать.

Link to post
Share on other sites
Это конечно хорошо, но вдруг именно данная копия скрипта зависла? ...... ИМХО биллинг должен сам как-то отрабатывать эти ситуации, т.к. ему виднее, что в каком порядке запускать.

Хороший скрипт должен не зависать, а работать:(

было бы не плохо, если в СТГ автор встроил про таймауты скриптов

Link to post
Share on other sites
Хороший скрипт должен не зависать, а работать:(

Оно конечно, но кто поручится, что предусмотрел всё? Особенно если это не 2-3 строчки управления файрволом, а сложный набор проверок, в том числе и удалённых серверов? Поэтому я пытаюсь предполагать наихудший вариант... :vah:

К слову, это фрагмент OnConnect и ОНО работает :tongue:

# Управление удалённым файрволом и уведомления об оплате

# Проверим, что юзер платит абонплату (в названии его тарифа есть фрагмент "$key")
abon=`cat "$usersconf" | grep "Tariff=" | grep "$key"`
if [ -n "$abon" ]; then
   if [ $Day -ge $(( ${DinM[$Month]}-3 )) ]; then # осталось меньше 3-х дней
       Tariff=${abon##Tariff=} # узнаем тариф
       Fee=$(cat $tariffs/$Tariff.tf | grep "Fee=")
       Fee=${Fee##Fee=}        # Узнаем абонплату
       if [ $(echo "$CASH < $Fee" | $bc) != 0 ]; then
            echo "$sgconf -s 127.0.0.1 -p 5555 -a messenger -w free \
            -u $LOGIN -m 'Внимание! У Вас не оплачен следующий месяц. \
            Тариф: $Fee ед.; Остаток: $CASH ед.'" | at now+1minutes 2>/dev/null
       fi
   fi

   # Проверка доступности GW
   if ! ping -A -c 2 $GW2 2>&1 >/dev/null; then
       echo "$D Error!     Gateway $GW2 is inaccessible." >> $logfile
       $sgconf -s 127.0.0.1 -p 5555 -a messenger -w free -u $LOGIN -m "В данный момент шлюз $GW2 (анлим) недоступен. Свяжитесь с Данилой из 127 квартиры."
       exit
   fi
   # Проверка, что юзер уже включен на втором GW
   already=`ssh $GW2 -T -l r_main "/sbin/iptables -n -L BILL | grep $IP" 2>/dev/null`
   if [ -z $already ]; then # если не включен
       # Проверим, что баланс > 0
       cash=`cat "$usersstat" | grep "Cash=" | grep "-"`
       if [ -z "$cach" ]; then # если не в минусе
           ssh $GW2 -T -l r_main "/sbin/iptables -I BILL -d $IP -j RETURN"
           ssh $GW2 -T -l r_main "/sbin/iptables -I BILL -s $IP -j RETURN"
           echo "$D Remote     login='$LOGIN' ip=$IP" >> $logfile
       fi
   elif [ -e "/home/$LOGIN/free_always.txt" ]; then
       echo "$D Remote     Find keeped connect from '$LOGIN' ip=$IP" >> $logfile
   else
       echo "$D Warning!   Double login from $IP" >> $logfile
   fi
fi

Edited by Wapr-Old
Link to post
Share on other sites

2Wapr-Old: OnConnect ахренеть)

Интересная мысль про сообщения через КК сразу при подключении.

И спасибо за мысль про 2 GW.

Буду знать, как можно реализовать, если что)

 

2админы: ещё мысль такая - если будете тестировать, попробуйте протестировать при хорошей нагрузке на проц и/или файловую систему.

Link to post
Share on other sites
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...