Zero_real 4 Posted 2010-11-18 14:39:37 Share Posted 2010-11-18 14:39:37 Доброго времени суток! При использовании базы в файлах была возможность создать в папке пользователя файлы OnConnect/OnDisconnect, которые выполнялись для при подключении этого пользователя. Есть ли такая возможность при использовании в качестве бд mysql? Нужно для того, чтобы загонять несколко логинов в одну трубу (pipe). Link to post Share on other sites
madf 279 Posted 2010-11-19 08:54:51 Share Posted 2010-11-19 08:54:51 Доброго времени суток! При использовании базы в файлах была возможность создать в папке пользователя файлы OnConnect/OnDisconnect, которые выполнялись для при подключении этого пользователя. Есть ли такая возможность при использовании в качестве бд mysql? Нужно для того, чтобы загонять несколко логинов в одну трубу (pipe). Ну вообще-то эта возможность зависит не от базы а от скриптов OnConnect/OnDisconnect. И я не вижу необходимости в создании этих скриптов под каждого пользователя. А если их 7000? Все можно сделать скриптом, группируя пользователей по какому-то признаку. Link to post Share on other sites
Zero_real 4 Posted 2010-11-19 14:52:41 Author Share Posted 2010-11-19 14:52:41 Ну это так сказать для еденичных случав. Значит при использовании mysql-базы такой возможности нет? Link to post Share on other sites
nightfly 1,252 Posted 2010-11-19 16:41:57 Share Posted 2010-11-19 16:41:57 На несколько логинов в одну трубу - они берутся и уганяются в табличку. В чем проблема? Link to post Share on other sites
Zero_real 4 Posted 2010-11-20 00:49:11 Author Share Posted 2010-11-20 00:49:11 Проблема в том, что номера труб я беру из ID, а параметры из userdata0 и userdata1. Т.е. при подключении пользователя создаются pipe-правила. Это удобно. Изменять ширину трубы можно из конфигуратора. Вопрос в том, как загонять 2 логина в одну трубу (у человека дома 2 компьютера, дабы не ставить ему всяких роутеров с натами просто создается 2 логина, а платит он как за один). В случае с скриптами OnConnect/OnDisconnect в папке пользователя просто создается одна труба на 2 логина с номером, который не попадает в диапазон значений ID и все. Как решить с мусклом? Link to post Share on other sites
nightfly 1,252 Posted 2010-11-20 02:01:02 Share Posted 2010-11-20 02:01:02 А у вас еще на каждого юзера и по два пайпа? Почитайте на досуге для чего нужен mask dst-ip 0xffffffff а также о том как всетаки пакеты проходят фаервол и как с эти соотносится быстродействие системы. Link to post Share on other sites
Zero_real 4 Posted 2010-11-20 10:21:41 Author Share Posted 2010-11-20 10:21:41 Мы уходим от темы. Знаю я про нагрузку. В моем случае это не актуально. Сеть малелькая, нагрузка еще меньше. Перспектив для развития нет. Так можно сделать юзерский OnConnect используя базу mysaql? Link to post Share on other sites
egor2fsys 5 Posted 2010-11-20 12:29:24 Share Posted 2010-11-20 12:29:24 Мы уходим от темы. Знаю я про нагрузку. В моем случае это не актуально. Сеть малелькая, нагрузка еще меньше. Перспектив для развития нет. Так можно сделать юзерский OnConnect используя базу mysaql? Хмм, я конечно не знаток баша и mysql (ну или какой у вас там используется интерпретатор для скриптов), но вроде бы можно добавить, допустим в таблицу users поле типа varchar, и при выполнении скрипта OnConnect или OnDisconnect читать поле из этой таблицы и обрабатывать выхлоп mysql. Т.е. если поле с содержимым скрипта пустое, то продолжать выполнение скрипта, если же не пустое, то записать содержимое поля во временный файл и выполнить его с нужным параметрами. SQL синтаксис получения содержимого поля может выглядеть примерно так: USE stargazer_database_name; SELECT `script` FROM `users` WHERE `IP` = $IP; Соответственно в самом скрипте даем команду вида mysql < sql.sql Данное дело возвратит нам две строки минимум, 1 с именем поля, вторая и последующие (если поле многострочное) - сам скрипт. Ну а его уже можно использовать по вкусу. Как это обрабатывать - надо подумать, или записывать во временный файл и его уже исполнять с нужными параметрами, или на лету подставлять в него нужные данные и исполнять сразу. Link to post Share on other sites
keshaLG 5 Posted 2010-11-20 23:46:52 Share Posted 2010-11-20 23:46:52 вот она реальная мощь *nix Link to post Share on other sites
nightfly 1,252 Posted 2010-11-21 11:24:17 Share Posted 2010-11-21 11:24:17 Так можно сделать юзерский OnConnect используя базу mysaql? Дык в чем проблема вытянуть в онконнект-ондисконнект данные из "mysaql"? #cat /etc/stargazer/OnConnect LOGIN=$1 SOMEDATA=`/etc/stargazer/GetSomedata $LOGIN` #cat /etc/stargazer/GetSomedata #!/usr/local/bin/php <?php $login=$argv[1]; $link = mysql_connect("localhost", "mysqllogin", "mysqlpassword"); mysql_select_db("stg"); $query = 'SELECT `somedata` FROM `sometable` where `login`= "'.$login.'"'; $result = mysql_query($query); while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { foreach ($line as $col_value) { print ($col_value); } } ?> Link to post Share on other sites
Zero_real 4 Posted 2010-11-21 19:44:04 Author Share Posted 2010-11-21 19:44:04 Вобще вопрос стоял прото, умеет ли stargazer делать это из коробки. Про правку скриптов, это понятно. Всем спасибо за ответы. Link to post Share on other sites
madf 279 Posted 2010-11-22 08:21:59 Share Posted 2010-11-22 08:21:59 Вобще вопрос стоял прото, умеет ли stargazer делать это из коробки. Про правку скриптов, это понятно. Всем спасибо за ответы. Если Stargazer и умел когда-то "из коробки" работать со скриптами в пользовательских каталогах, то это было явно еще до того как я пришел в проект. Начиная с 2.4.6.8 я такого не наблюдаю. Да и нелогично пихать этот функционал в него - это можно двумя строчками реализовать через существующие скрипты. Link to post Share on other sites
Zero_real 4 Posted 2010-11-22 14:28:16 Author Share Posted 2010-11-22 14:28:16 Умел. Точно умел. В версии 2.0 точно было Link to post Share on other sites
madf 279 Posted 2010-11-22 16:40:29 Share Posted 2010-11-22 16:40:29 Умел. Точно умел. В версии 2.0 точно было Ну вот в 2.4 точно убрали. Потому что смысла в этом нет Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now