Перейти к содержимому
Local
Den_LocalNet

Скрипты onConnect/onDisconnect

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

Вот по такой конструкции должно работать

 

((string)note).c_str()

user.cpp: In member function `void USER::Connect(bool)':
user.cpp:611: error: 'class USER_PROPERTY<std::string>' has no member named 'c_str'
gmake: *** [user.o] Ошибка 1

 

никуя ))

 

Товарищи Сишники - предлагайте решение. А то я смотрю в коду и ничего не вижу))

Поделиться сообщением


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

Затупил. Это ж шаблон.

Надо так: note.ConstData().c_str()

Поделиться сообщением


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

 

((string)note).c_str()

Уж лучше тогда static_cast ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Затупил. Это ж шаблон.

Надо так: note.ConstData().c_str()

спасибо друг, все заработало . Будешь в наших краях - с нас пиво ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Затупил. Это ж шаблон.

Надо так: note.ConstData().c_str()

спасибо друг, все заработало . Будешь в наших краях - с нас пиво ))

А где находятся ваши края? ;)

Поделиться сообщением


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

Решил таки выложить обновлённую версию скрипта, но посмотрев на объём :-0 , решил ограничиться заголовком и ссылкой.

#!/bin/sh
#Этот скрипт вызывается в момент, когда пользователь
#успешно прошел авторизацию в биллинге. Задача скрипта - перестроить
#файрволлы так, чтобы пользователь получил доступ в интернет

# ©2003-2008 Wapr Old. Ver 3.3 (04.2008)

#0. Умолчания: До запуска биллинга должна быть создана цепочка BILL
# с последним правилом -j DROP и в неё должны отправляться все пакеты
# для которых необходимо управление доступом. (как минимум из FORWARD)
# и запрос на прокси.
# например так:
# iptables -A FORWARD -i $WAN -o $LAN -j BILL
# iptables -A FORWARD -i $LAN -o $WAN -j BILL
# iptables -A INPUT -p tcp --dport 3128 -i $LAN -j BILL
# где WAN/LAN - имена сетевых интерфейсов [ethX|pppX]

#1. Скрипт проверяет наличие персональной юзерской цепочки по шаблону
# BILL_${LOGIN} и если её нет, создает её. [bILL_Vasya]

#2. В неё при создании добавляются в нужном порядке разрешающие
# и запрещающие правила для всех необходимых адресов и критериев
# ограничения скорости с возвратом пакетов через -j ACCEPT
# Стоит учесть, что сюда попали пакеты ТОЛЬКО данного юзера, поэтому
# IP юзера можно уже не учитывать

#3. В цепочку BILL добавляется вызов юзерской цепочки для всех
# входящих и исходящих пакетов данного юзера
# iptables -I BILL -s $IP -j BILL_${LOGIN}
# iptables -I BILL -d $IP -j BILL_${LOGIN}

#4. Для отключения юзера надо удалить только 2 правила в цепочке BILL,
# а его цепочка остается на будущее. (to do)

#5. Допускается форвард до 15 портов по TCP и UDP отдельно. Список берется
# либо из поля Userdata0, либо из файла в каталоге "/home/$LOGIN/portforward.txt"
# формат записи: tcp=port1,port2... udp=port1,port2...
# эквиваленные разделители: "="==":" ","==";" \n==\s==\t
# Последняя строка файла не должна содержать правил и может быть пустой или
# с комментарием, но она должна быть.
# Пример создаваемого правила:
# iptables -t nat -A PREROUTING_$LOGIN -i ppp+ -p tcp -m multiport \
#        --dport 1234,5678,18273 -j DNAT --to-destination $IP
# В случае попытки захвата занятого порта юзеру выдаётся предупреждение, а порт
# исключается из запроса.

#6. Если имя в биллинге не совпадает с именем на сервере, для поиска юзерского
# файла допускается подмена из поля Userdata0: username=имя_на_сервере

#7. Можно заблокировать порты назначения каждому юзеру записями в Userdata0
# rejecttcp=port1,port2... и rejectudp=port1,port2...
# Блокирующие записи вносятся в персональную юзерскую цепочку и не мешают остальным
# юзерам. Также нет ограничений на количество портов.
# пример блокирующего правила:
# iptables -A BILL_$LOGIN -p TCP --dport 25 -j REJECT

#8. При анализе имени тарифа выделяются фрагменты "anlim-" и "abon-" для создания
# особых правил для данных типов тарифов.
# Также выделяется последние цифры от знака "-" до конца для получения тарифной скорости
# в Kbit/sec по маске AnyTarifName-X, где X произвольное число.
# Если числа нет или оно равно нулю - скорость не ограничена.
# Т.е. название тарифа строится по формату: AnyTariffName[abon-][anlim-][-speed]

дальше код. его много. 1 пуд. чтоб не засорять тут, скачать можно там.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Немного обновленая версия скриптов, с ограничением скорости для каждого юзверя...

Смотрим:

 

# OnConnect

LOGIN=$1
IP=$2
CASH=$3
ID=$4
SPEED=`cat /var/stargazer/users/$LOGIN/conf | grep 'Note=' | cut -d "=" -f2`
fwcmd="/sbin/ipfw -q"
cur_date=`date \+\%Y.\%m.\%d`
cur_time=`date \+\%H:\%M:\%S`

# DELETE RULEZ
${fwcmd} delete `expr $ID '*' 10 + 10001`
${fwcmd} delete `expr $ID '*' 10 + 10002`
${fwcmd} delete `expr $ID '*' 10 + 10003`
${fwcmd} delete `expr $ID '*' 10 + 10004`
${fwcmd} delete `expr $ID '*' 10 + 10005`

# ADD RULEZ
${fwcmd} pipe `expr $ID + 101` config bw $SPEED
${fwcmd} add `expr $ID '*' 10 + 10001` allow icmp from $IP to any icmptype 0,3,4,11,12
${fwcmd} add `expr $ID '*' 10 + 10002` pipe `expr $ID + 101` ip from $IP to any via xl0
${fwcmd} add `expr $ID '*' 10 + 10003` pipe `expr $ID + 101` ip from any to $IP via xl0
${fwcmd} add `expr $ID '*' 10 + 10004` allow ip from $IP to any
${fwcmd} add `expr $ID '*' 10 + 10005` allow ip from any to $IP

# ADD TO LOG
echo "<=;$cur_date;$cur_time;$ID;$LOGIN;$IP;$CASH" >> /var/stargazer/users/$LOGIN/connect.log
echo "<=;$cur_date;$cur_time;$ID;$LOGIN;$IP;$CASH" >> /home/stat/logs/allconnect.log

 

# OnDisconnect
LOGIN=$1
IP=$2
CASH=$3
ID=$4

fwcmd="/sbin/ipfw -q"

# TIME FORMAT
cur_date=`date \+\%Y.\%m.\%d`
cur_time=`date \+\%H:\%M:\%S`

# DELETE RULEZ FRO IPFW
${fwcmd} delete `expr $ID '*' 10 + 10001`
${fwcmd} delete `expr $ID '*' 10 + 10002`
${fwcmd} delete `expr $ID '*' 10 + 10003`
${fwcmd} delete `expr $ID '*' 10 + 10004`
${fwcmd} delete `expr $ID '*' 10 + 10005`

echo "=>;$cur_date;$cur_time;$ID;$LOGIN;$IP;$CASH" >> /var/stargazer/users/$LOGIN/connect.log
echo "=>;$cur_date;$cur_time;$ID;$LOGIN;$IP;$CASH" >> /home/stat/logs/allconnect.log

с фаерволом думаю несложно... выглядит это (ipfw show) бриблизительно так:

...
10011     163      14456 allow icmp from 172.12.114.6 to any icmptypes 0,3,4,11,12
10012    1659     181967 pipe 102 ip from 172.12.114.6 to any via xl0
10013    1780     815891 pipe 102 ip from any to 172.12.114.6 via xl0
10014    1659     181967 allow ip from 172.12.114.6 to any
10015    2470    1342574 allow ip from any to 172.12.114.6
10031    7435     683948 allow icmp from 172.12.114.42 to any icmptypes 0,3,4,11,12
10032   11183    1327402 pipe 104 ip from 172.12.114.42 to any via xl0
10033   19096    7432025 pipe 104 ip from any to 172.12.114.42 via xl0
10034   11183    1327402 allow ip from 172.12.114.42 to any
10035   30668   14159607 allow ip from any to 172.12.114.42
10191    1875     172320 allow icmp from 172.12.115.3 to any icmptypes 0,3,4,11,12
10192    6834     886513 pipe 105 ip from 172.12.115.3 to any via xl0
10193    9150    6539362 pipe 105 ip from any to 172.12.115.3 via xl0
10194    6834     886513 allow ip from 172.12.115.3 to any
10195   16292   12879816 allow ip from any to 172.12.115.3
...

 

FreeBSD 6.3

#!/bin/sh
fwcmd="/sbin/ipfw"
${fwcmd} -f flush

####################################
oif="bge0"
onet="10.100.201.1"
omask="255.255.255.0"
oip="10.100.201.60"        ip ИНТЕРНЕТ

iif="fxp0"
inet="192.168.15.0"
imask="255.255.255.0"
iip="192.168.15.1"            сетка для клиентов
####################################

не как не получяется настроить rc.firewall чтоб работал OnConnect и OnDisconnect

 

ipfw show правила есть, тоесть OnConnect добавляет свои правила.

не знаю как сделать чтобы клиент например, с ip 192.168.15.3, нажал конект есть инет, нажал дисконект -нет инета

10011    0       0 allow icmp from 192.168.15.3 to any icmptypes 0,3,4,11,12
10012    0       0 pipe 102 ip from 192.168.15.3 to any via fxp0
10013    0       0 pipe 102 ip from any to 192.168.15.3 via fxp0
10014    0       0 allow ip from 192.168.15.3 to any
10015    0       0 allow ip from any to 192.168.15.3

Поделиться сообщением


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

При добавлении юзера удаляет } в конце dhcpd.conf, дописывает сторочку с привязкой ip и mac, ставит } на место.

прописывает ip в статическую таблицу arp и вносит изменения в файл /etc/ethers для организации статической таблицы arp при старте системы.

Ну и ребутит dhcpd.

МАС адрес должен добавляться в конфигураторе в поле "Userdata0"

#!/bin/bash

PATH=/sbin:/usr/sbin:/bin:/usr/bin

# Login
login=$1

ip=`cat /var/stargazer/users/$login/conf | grep 'IP=' | cut -d "=" -f2`
mac=`cat /var/stargazer/users/$login/conf | grep 'Userdata0=' | cut -d "=" -f2`
num=`cat /etc/dhcpd.conf | wc -l`
hst=`echo $ip | cut -d"." -f4` # в больших сетях можно заюзать hst=$login
#let "num=num+1"
sed $num"d" /etc/dhcpd.conf > /var/tmp/dhcpd.temp
echo "            host host-$hst {hardware ethernet $mac; fixed-address $ip;}
}" >> /var/tmp/dhcpd.temp
rm /etc/dhcpd.conf
mv /var/tmp/dhcpd.temp /etc/dhcpd.conf

echo "$ip       $mac" >> /etc/ethers

arp -s $ip $mac

service dhcpd reload

Наткнулся на грабли, на которые наверняка уже кто то наступил, если кто просветит - буду очень благодарен, итак:

Скрипт вполне рабочий, но если он выполняется при добавлении юзера (как ему и положено), то вместо ИП адреса в конфигурационные файлы вписывается "*". Если же повторно выполнить данный скрипт, предварительно указав переменной LOGIN имя только что созданного пользователя, то скрипт отработает все правильно, как ему и полагается. Создается впечатление что скрипт выполняется тогда, когда файл пользователя conf уже создан, но в нем нет никакой информации.

 

ОС

Linux 2.6.23.15-80.0.120asp #1 SMP Thu Feb 28 20:15:16 EET 2008 i686 i686 i386 GNU/Linux

 

STARGAZER 2.4.04

Поделиться сообщением


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
При добавлении пользователя у него кроме логина ничего нет. После добавления идет серия OnChange, в которой юзеру присваиваются параметры.

при изменении каких параметров выполняется скрипт ОНЧЕНДЖ ?

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

Я не очень силен в БАШе, может поделитесь скриптом, который добавлял бы данные нового пользователя в конфигурационный файл или изменял данные уже существующего. Если готового примера нет, может кто покажет на примере файлика /etc/ethers

 

Хотелось бы что нибудь подобное

 

проверяем есть ли есть ли АП 10.0.0.1 в файле /etc/ethers

если нет - то добавляем запись типа 10.0.0.1 00:00:00:00:00:01

если есть - то удаляем существующую запись и записываем на место старой что нибудь типа 10.0.0.1 00:00:00:00:00:01

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
При добавлении пользователя у него кроме логина ничего нет. После добавления идет серия OnChange, в которой юзеру присваиваются параметры.

при изменении каких параметров выполняется скрипт ОНЧЕНДЖ ?

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

Я не очень силен в БАШе, может поделитесь скриптом, который добавлял бы данные нового пользователя в конфигурационный файл или изменял данные уже существующего. Если готового примера нет, может кто покажет на примере файлика /etc/ethers

 

Хотелось бы что нибудь подобное

 

проверяем есть ли есть ли АП 10.0.0.1 в файле /etc/ethers

если нет - то добавляем запись типа 10.0.0.1 00:00:00:00:00:01

если есть - то удаляем существующую запись и записываем на место старой что нибудь типа 10.0.0.1 00:00:00:00:00:01

берем с помощью консольного конфигуратора ВСЕ значения, и перезаписываем файл заново полностью.

Поделиться сообщением


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

Подскажите что делает цикл while [ $? -eq 0 ], вначале же и так правило стоит на удаление?

iptables -D FORWARD -i $eth_local -s $ip -j DROP
while [ $? -eq 0 ]
do
  iptables -D FORWARD -i $eth_local -s $ip -j DROP
done

Поделиться сообщением


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
берем с помощью консольного конфигуратора ВСЕ значения, и перезаписываем файл заново полностью.

Не совсем понял Ваш ответ, разъясните пожалуйста.

Поделиться сообщением


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

Уважемые спецы.

Прошу Вашей помощи.

Есть FreeBSD 6.2 используется штатный IPFW, на ней установлено Squid прозрачный, Apache, Stargazer 2.402.9.7, Sarg.

Суть проблемы получлась в следующем:

у Stargazera есь скрипты общие для включения и выключения клиента.

Так вот если я включаю клиента у него инет пропадает и наоборот если выключу - появляется.

 

OnConnect:

LOGIN=$1

IP=$2

CASH=$3

ID=$4

# SPEED=`cat /var/stargazer/users/$LOGIN/conf | grep 'Note=' | cut -d "=" -f2`

fwcmd="/sbin/ipfw -q"

cur_date=`date \+\%Y.\%m.\%d`

cur_time=`date \+\%H:\%M:\%S`

 

#${fwcmd} pipe `expr $ID + 101` config bw $SPEED

#${fwcmd} add `expr $ID + 501` pipe `expr $ID + 101` tcp from any to $IP via em1

${fwcmd} add `expr $ID '*' 10 + 1001` allow icmp from $IP to any via em1 keep-state

${fwcmd} add `expr $ID '*' 10 + 1002` allow all from $IP to any keep-state

${fwcmd} add `expr $ID '*' 10 + 1003` allow all from any to $IP keep-state

 

echo "C `date +%Y.%m.%d-%H.%M.%S` $ID $IP $CASH" >> /var/stargazer/users/

echo "C `date +%Y.%m.%d-%H.%M.%S` $ID $LOGIN $IP $CASH" >> /var/stargaze

echo "<=;$cur_date;$cur_time;$ID;$LOGIN;$IP;$CASH" >> /home/stat/logs/connect.log

 

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

 

OnDisconnect:

LOGIN=$1

IP=$2

CASH=$3

ID=$4

 

fwcmd="/sbin/ipfw"

cur_date=`date \+\%Y.\%m.\%d`

cur_time=`date \+\%H:\%M:\%S`

 

 

#${fwcmd} delete `expr $ID + 501`

#${fwcmd} delete `expr $ID '*' 10 + 1000`

${fwcmd} delete `expr $ID '*' 10 + 1001`

${fwcmd} delete `expr $ID '*' 10 + 1002`

${fwcmd} delete `expr $ID '*' 10 + 1003`

 

echo "D `date +%Y.%m.%d-%H.%M.%S` $ID $IP $CASH" >> /var/stargazer/users/

echo "D `date +%Y.%m.%d-%H.%M.%S` $ID $LOGIN $IP $CASH" >> /var/stargaze

echo "=>;$cur_date;$cur_time;$ID;$LOGIN;$IP;$CASH" >> /home/stat/logs/connect.log

 

IPFW:

#!/bin/sh

 

fwcmd="/sbin/ipfw -q"

natcmd="/sbin/natd"

 

#Set providera

oif="em0"

onet="1.2.3.3"

omask="255.255.255.252"

oip="1.2.3.4"

 

#Lokalna set

iif="em1"

inet="192.168.0.0"

imask="255.255.255.0"

iip="192.168.0.1"

 

#Admins

admip="192.168.0.2"

 

${fwcmd} -f flush

 

${natcmd} -s -m -u -a 1.2.3.4

#Proverka ranee ustanovlenich soedineni

${fwcmd} add 100 check-state

#Razreshim vse na lo0

${fwcmd} add 200 allow ip from any to any via lo0

${fwcmd} add 210 deny ip from any to 127.0.0.0/8

 

#Propustim admina na em0

${fwcmd} add 300 allow log ip from ${admip} to any via ${iif}

${fwcmd} add 310 allow log ip from any to ${admip} via ${iif}

#Rubim hastie seti

${fwcmd} add 400 deny ip from any to 10.0.0.0/8 in via ${oif}

${fwcmd} add 410 deny ip from any to 127.16.0.0/12 in via ${oif}

${fwcmd} add 420 deny ip from any to 192.168.0.0/16 in via ${oif}

${fwcmd} add 430 deny ip from any to 0.0.0.0/8 in via ${oif}

#

${fwcmd} add 440 deny ip from any to 169.254.0.0/16 in via ${oif}

#

${fwcmd} add 450 deny ip from any to 240.0.0.0/4 in via ${oif}

#

${fwcmd} add 455 allow icmp from any to any via ${oif} icmptype 0,8,12

${fwcmd} add 460 deny icmp from any to any frag

#

${fwcmd} add 470 deny log icmp from any to 255.255.255.255 in via ${oif}

${fwcmd} add 480 deny log icmp from any to 255.255.255.255 out via ${oif}

#Otpravim vsech na squid

${fwcmd} add 500 fwd 127.0.0.1,3128 tcp from ${inet}:${imask} to any 80 via ${iif}

#Razreshim NAT

${fwcmd} add 510 divert natd all from any to any via ${oif}

#Rubim hastie seti naoborot

${fwcmd} add 540 deny ip from 10.0.0.0/8 to any out via ${oif}

${fwcmd} add 550 deny ip from 127.16.0.0/12 to any out via ${oif}

${fwcmd} add 560 deny ip from 192.168.0.0/16 to any out via ${oif}

${fwcmd} add 570 deny ip from 0.0.0.0/8 to any out via ${oif}

#

${fwcmd} add 580 deny ip from 169.254.0.0/16 to any out via ${oif}

#

${fwcmd} add 590 deny ip from 224.0.0.0/4 to any out via ${oif}

#

${fwcmd} add 595 deny ip from 240.0.0.0/4 to any out via ${oif}

#

#${fwcmd} add 600 allow tcp from any to any established

${fwcmd} add 610 allow ip from ${oip} to any out xmit ${oif}

#Razreshim iz ineta dostup

#${fwcmd} add 600 allow ip from any to any via ${oif}

${fwcmd} add 700 allow tcp from any 53 to any via ${oif}

${fwcmd} add 705 allow tcp from any 25 to any via ${oif}

${fwcmd} add 710 allow tcp from any 80 to any via ${oif}

${fwcmd} add 720 allow udp from any 53 to any via ${oif}

${fwcmd} add 725 allow udp from any 25 to any via ${oif}

${fwcmd} add 730 allow udp from any 80 to any via ${oif}

${fwcmd} add 740 allow tcp from any to any 110,143,443,495,587 via ${oif}

${fwcmd} add 760 allow udp from any to any 110,143,443,495,587 via ${oif}

${fwcmd} add 780 deny tcp from any to any 3306,3307 via ${oif}

${fwcmd} add 790 deny tcp from any to any 3128,3130 via ${oif}

${fwcmd} add 800 deny tcp from any to any 1-1024 via ${oif}

${fwcmd} add 810 deny udp from any to any 1-1024 via ${oif}

${fwcmd} add 820 allow tcp from any to any 1025-65535 via ${oif}

${fwcmd} add 830 allow udp from any to any 1025-65535 via ${oif}

 

#Zapretim paketi na em1 s adresami providera

${fwcmd} add 1010 deny log all from ${onet}:${omask} to any via ${iif}

 

#Autorizator Ztargazer

${fwcmd} add 2000 allow udp from ${inet}:${imask} to ${iip} 5555 via ${iif}

${fwcmd} add 2010 allow udp from ${iip} to ${inet}:${imask} via ${iif}

#Configurator Stargazer

${fwcmd} add 2020 allow tcp from ${admip} to ${iip} 5555 via ${iif}

${fwcmd} add 2030 allow log tcp from ${admip} to ${iip} 4444 via ${iif}

${fwcmd} add 2040 allow log tcp from ${iip} to ${admip} via ${iif}

 

#SSH

${fwcmd} add 2100 allow tcp from ${admip} to ${iip} 22 via ${iif}

${fwcmd} add 2110 allow tcp from ${iip} to ${admip} via ${iif}

#

${fwcmd} add 2120 allow tcp from any to any via ${iif}

${fwcmd} add 2130 allow udp from any to any via ${iif}

${fwcmd} add 2140 allow icmp from any to any via ${iif}

#Razreshim NAT

#${fwcmd} add 51000 divert natd all from any to any via ${oif}

#

${fwcmd} add 51029 allow tcp from any to any out via ${oif} setup

${fwcmd} add 51030 allow tcp from any to any via ${oif} established

#

${fwcmd} add 65534 deny ip from any to any

 

 

Что не так сделал? Где "сидит" ошибка?

Поделиться сообщением


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

И что никто не знает ? :)

странно...

надеялся и верил..

жаль.

пойду к другим спрашивать.

Поделиться сообщением


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

Таке питання: як в скриптах Онконект витягувати інформацію про тариф користувача з бази мускл і дальше вже відповідно різати швидкість?

FreeBSD - ipfw

Можливо в когось є приклади таких скриптів?

Дякую!

Поделиться сообщением


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

похоже ніхто не знає. :)

А взагалі є можливість хоть шось витягнути з бази приконекті?????

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
похоже ніхто не знає. :)

А взагалі є можливість хоть шось витягнути з бази приконекті?????

Например вызвать сторонний скрипт на php

Внутри написать что-то типа:

 

mysql_connect('localhost', 'admin', 'password'); //

mysql_select_db('stg_billing') or

die("Could not connect: " . mysql_error());

$q=mysql_query("SELECT `Tariff`, `IP` FROM `users` ");

 

 

Или сам скрипт онконнект написать на php и там уже дерзать.

 

А вобще я скорость режу не при коннекте а отдельным скриптом по крону.

Поделиться сообщением


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

Можно написать на bash, используя клиент mysql

man mysql

Поделиться сообщением


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

Посмотрите тему скрипты онконнект и дисконнект, я там пхп-шные выкладывал

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Скрипт запуска STG в качестве демона на Linux

 

#!/bin/bash
. /etc/rc.d/init.d/functions
RETVAL=0
start()
{
echo -n $"Запускаю биллинговую систему (Stargazer)....."
( /usr/sbin/stargazer &)
   daemon true
   RETVAL=$?
   echo
   [ $RETVAL -eq 0 ] && touch /var/lock/subsys/stargaser
return $RETVAL
}

stop()
{
echo -n "Останавливаю биллинговую систему (Stargazer)....."
killproc stargazer
rm -f /var/lock/subsys/stargazer
echo
return $RETVAL
sleep 1
       }

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 2
start
;;
*)
echo "Используй: `basename $0` { start | stop | restart }"
exit
;;
esac

На Ubuntu Server 8.04 не заработало

 

root@coresrv:/etc/init.d# ./stargazer restart
./stargazer: line 2: /etc/rc.d/init.d/functions: No such file or directory
Останавливаю биллинговую систему (Stargazer)....../stargazer: line 18: killproc: command not found

Запускаю биллинговую систему (Stargazer)....../stargazer: line 8: daemon: command not found

Поделиться сообщением


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

Здравствуйте.

Вот такой вопрос.

Поставил stargazer-2.4. В /etc/stargazer лежат OnConnect и OnDisconnect.

В старых версиях биллинговой системы эти скрипты можно положить каждому пользователю в его каталог и они выполнялись там.

В 2.4 они не выполняются из каталога пользователей, а только в /etc/stargazer.

У меня завязано все на этом.

Как передать значение переменных из /etc/stargazer/OnConnect и /etc/stargazer/OnDisconnect в /var/stargazer/users/"$user_name"/OnConnect и /var/stargazer/users/"$user_name"/OnDisconnect.

 

Т.е я запускаю в /etc/stargazer/OnConnect из него запускается /var/stargazer/users/"$user_name"/OnConnect во втором скрипте нужно использовать переменные которые есть в первом (LOGIN=$1 IP=$2 CASH=$3 ID=$4) аналогично и с /etc/stargazer/OnDisconnect > /var/stargazer/users/user_name/OnDisconnect.

 

Я думал что-то типа такого из $a > ./s.sh.

 

Спасибо.

Поделиться сообщением


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

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

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

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

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

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

Войти

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

Войти сейчас


×