Перейти до

mysql + OnConnect конкретного пользователя


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

Доброго времени суток!

 

 

При использовании базы в файлах была возможность создать в папке пользователя файлы OnConnect/OnDisconnect, которые выполнялись для при подключении этого пользователя. Есть ли такая возможность при использовании в качестве бд mysql?

 

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

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

Доброго времени суток!

 

 

При использовании базы в файлах была возможность создать в папке пользователя файлы OnConnect/OnDisconnect, которые выполнялись для при подключении этого пользователя. Есть ли такая возможность при использовании в качестве бд mysql?

 

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

Ну вообще-то эта возможность зависит не от базы а от скриптов OnConnect/OnDisconnect.

И я не вижу необходимости в создании этих скриптов под каждого пользователя. А если их 7000? Все можно сделать скриптом, группируя пользователей по какому-то признаку.

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

Проблема в том, что номера труб я беру из ID, а параметры из userdata0 и userdata1. Т.е. при подключении пользователя создаются pipe-правила. Это удобно. Изменять ширину трубы можно из конфигуратора.

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

В случае с скриптами OnConnect/OnDisconnect в папке пользователя просто создается одна труба на 2 логина с номером, который не попадает в диапазон значений ID и все. Как решить с мусклом?

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

А у вас еще на каждого юзера и по два пайпа?

 

Почитайте на досуге для чего нужен mask dst-ip 0xffffffff а также о том как всетаки пакеты проходят фаервол и как с эти соотносится быстродействие системы.

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

Мы уходим от темы. Знаю я про нагрузку. В моем случае это не актуально. Сеть малелькая, нагрузка еще меньше. Перспектив для развития нет.

 

Так можно сделать юзерский OnConnect используя базу mysaql?

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

Мы уходим от темы. Знаю я про нагрузку. В моем случае это не актуально. Сеть малелькая, нагрузка еще меньше. Перспектив для развития нет.

 

Так можно сделать юзерский OnConnect используя базу mysaql?

 

 

Хмм, я конечно не знаток баша и mysql (ну или какой у вас там используется интерпретатор для скриптов), но вроде бы можно добавить, допустим в таблицу users поле типа varchar, и при выполнении скрипта OnConnect или OnDisconnect читать поле из этой таблицы и обрабатывать выхлоп mysql. Т.е. если поле с содержимым скрипта пустое, то продолжать выполнение скрипта, если же не пустое, то записать содержимое поля во временный файл и выполнить его с нужным параметрами.

SQL синтаксис получения содержимого поля может выглядеть примерно так:

 

USE stargazer_database_name;

SELECT `script` FROM `users` WHERE `IP` = $IP;

 

Соответственно в самом скрипте даем команду вида

 

mysql < sql.sql

 

Данное дело возвратит нам две строки минимум, 1 с именем поля, вторая и последующие (если поле многострочное) - сам скрипт. Ну а его уже можно использовать по вкусу.

 

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

Ссылка на сообщение
Поделиться на других сайтах
Так можно сделать юзерский 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);
}
}
?>

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

Вобще вопрос стоял прото, умеет ли stargazer делать это из коробки. Про правку скриптов, это понятно.

 

 

Всем спасибо за ответы.

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

Вобще вопрос стоял прото, умеет ли stargazer делать это из коробки. Про правку скриптов, это понятно.

 

 

Всем спасибо за ответы.

Если Stargazer и умел когда-то "из коробки" работать со скриптами в пользовательских каталогах, то это было явно еще до того как я пришел в проект. Начиная с 2.4.6.8 я такого не наблюдаю. Да и нелогично пихать этот функционал в него - это можно двумя строчками реализовать через существующие скрипты.

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

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

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

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

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

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

Вхід

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

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

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

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