vovksextra 0 Опубліковано: 2008-03-22 15:00:04 Share Опубліковано: 2008-03-22 15:00:04 Вот по такой конструкции должно работать ((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 никуя )) Товарищи Сишники - предлагайте решение. А то я смотрю в коду и ничего не вижу)) Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-03-22 15:42:03 Share Опубліковано: 2008-03-22 15:42:03 Затупил. Это ж шаблон. Надо так: note.ConstData().c_str() Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-03-22 15:42:50 Share Опубліковано: 2008-03-22 15:42:50 Вот по такой конструкции должно работать ((string)note).c_str() Уж лучше тогда static_cast Ссылка на сообщение Поделиться на других сайтах
vovksextra 0 Опубліковано: 2008-03-22 16:27:39 Share Опубліковано: 2008-03-22 16:27:39 Затупил. Это ж шаблон.Надо так: note.ConstData().c_str() спасибо друг, все заработало . Будешь в наших краях - с нас пиво )) Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-03-22 16:44:59 Share Опубліковано: 2008-03-22 16:44:59 Затупил. Это ж шаблон.Надо так: note.ConstData().c_str() спасибо друг, все заработало . Будешь в наших краях - с нас пиво )) А где находятся ваши края? Ссылка на сообщение Поделиться на других сайтах
Wapr-Old 0 Опубліковано: 2008-04-21 20:38:31 Share Опубліковано: 2008-04-21 20:38:31 Решил таки выложить обновлённую версию скрипта, но посмотрев на объём :-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 пуд. чтоб не засорять тут, скачать можно там. Ссылка на сообщение Поделиться на других сайтах
igal 0 Опубліковано: 2008-04-29 14:56:51 Share Опубліковано: 2008-04-29 14:56:51 Немного обновленая версия скриптов, с ограничением скорости для каждого юзверя...Смотрим: # 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 Ссылка на сообщение Поделиться на других сайтах
cristal 0 Опубліковано: 2008-06-08 18:47:05 Share Опубліковано: 2008-06-08 18:47:05 Скрипт 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 Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-06-08 19:00:56 Share Опубліковано: 2008-06-08 19:00:56 При добавлении пользователя у него кроме логина ничего нет. После добавления идет серия OnChange, в которой юзеру присваиваются параметры. Ссылка на сообщение Поделиться на других сайтах
cristal 0 Опубліковано: 2008-06-08 20:02:00 Share Опубліковано: 2008-06-08 20:02:00 При добавлении пользователя у него кроме логина ничего нет. После добавления идет серия 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 Ссылка на сообщение Поделиться на других сайтах
Колян 2 Опубліковано: 2008-06-09 05:49:16 Share Опубліковано: 2008-06-09 05:49:16 При добавлении пользователя у него кроме логина ничего нет. После добавления идет серия 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 берем с помощью консольного конфигуратора ВСЕ значения, и перезаписываем файл заново полностью. Ссылка на сообщение Поделиться на других сайтах
borin 0 Опубліковано: 2008-06-10 02:37:26 Share Опубліковано: 2008-06-10 02:37:26 Подскажите что делает цикл 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 Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-06-10 06:02:06 Share Опубліковано: 2008-06-10 06:02:06 Цикл чисчтит файрвол в случае, если, случайно, там оказалось несколько таких правил. Гарантия того, что пользователь будет отключен. Ссылка на сообщение Поделиться на других сайтах
borin 0 Опубліковано: 2008-06-10 06:43:55 Share Опубліковано: 2008-06-10 06:43:55 спс Ссылка на сообщение Поделиться на других сайтах
cristal 0 Опубліковано: 2008-06-10 07:08:27 Share Опубліковано: 2008-06-10 07:08:27 берем с помощью консольного конфигуратора ВСЕ значения, и перезаписываем файл заново полностью. Не совсем понял Ваш ответ, разъясните пожалуйста. Ссылка на сообщение Поделиться на других сайтах
vlad5503 1 Опубліковано: 2008-07-01 10:43:40 Share Опубліковано: 2008-07-01 10:43:40 Уважемые спецы. Прошу Вашей помощи. Есть 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 Что не так сделал? Где "сидит" ошибка? Ссылка на сообщение Поделиться на других сайтах
vlad5503 1 Опубліковано: 2008-07-04 09:17:20 Share Опубліковано: 2008-07-04 09:17:20 И что никто не знает ? странно... надеялся и верил.. жаль. пойду к другим спрашивать. Ссылка на сообщение Поделиться на других сайтах
fedus 0 Опубліковано: 2008-07-16 09:30:24 Share Опубліковано: 2008-07-16 09:30:24 Таке питання: як в скриптах Онконект витягувати інформацію про тариф користувача з бази мускл і дальше вже відповідно різати швидкість? FreeBSD - ipfw Можливо в когось є приклади таких скриптів? Дякую! Ссылка на сообщение Поделиться на других сайтах
fedus 0 Опубліковано: 2008-07-17 07:22:33 Share Опубліковано: 2008-07-17 07:22:33 похоже ніхто не знає. А взагалі є можливість хоть шось витягнути з бази приконекті????? Ссылка на сообщение Поделиться на других сайтах
zulu_Radist 856 Опубліковано: 2008-07-17 08:11:59 Share Опубліковано: 2008-07-17 08:11:59 похоже ніхто не знає. А взагалі є можливість хоть шось витягнути з бази приконекті????? Например вызвать сторонний скрипт на 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 и там уже дерзать. А вобще я скорость режу не при коннекте а отдельным скриптом по крону. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-07-17 08:58:43 Share Опубліковано: 2008-07-17 08:58:43 Можно написать на bash, используя клиент mysql man mysql Ссылка на сообщение Поделиться на других сайтах
Колян 2 Опубліковано: 2008-07-17 09:11:12 Share Опубліковано: 2008-07-17 09:11:12 Посмотрите тему скрипты онконнект и дисконнект, я там пхп-шные выкладывал Ссылка на сообщение Поделиться на других сайтах
Richman 0 Опубліковано: 2008-07-18 18:15:11 Share Опубліковано: 2008-07-18 18:15:11 Скрипт запуска 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 Ссылка на сообщение Поделиться на других сайтах
hub00 0 Опубліковано: 2008-09-09 08:21:33 Share Опубліковано: 2008-09-09 08:21:33 Здравствуйте. Вот такой вопрос. Поставил 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. Спасибо. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-09-12 06:05:31 Share Опубліковано: 2008-09-12 06:05:31 Неправильно думал. Это не stdin, это командная строка - просто указывай параметры после имени сркипта. Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас