Перейти до

Анлимы без костылей...


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

Возможно ли использование старгейзера для работы с пользователями сидящими на анлимах?

 

Есть маленькая сеть, все на анлимах. Раньше рулил вручную через htb. Поставил старгейзер 2.406. Удобный. Простой. Понятный. Но так и не нашел способа управлять анлимами без костылей (через userdata или парся название тарифа). Может просто плохо искал?

 

Отсюда вопрос, планируется ли ввести изменения в биллинг для управления тарифами с неограниченным трафиком?

 

З.Ы. Что-то буду допиливать для себя... но не хотелось бы изобретать велосипед. Что-то, думаю, будет полезно не только мне.

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 68
  • Створено
  • Остання відповідь

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

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

"Не зависит..." стоит везде. "Без порога" - на внешний трафик стоит. На локальный - 1 копейка после 20Гб.   Мне, вообще, пофигу - могу и без СТГ рулить, через ssh. Но мальчику на приеме платежей с

Во-первых - это уже задача не менеджера!!! И не надо на ихние плечи это вешать. Во-вторых, человек со средней смекалкой, почитав документацию - сделает это легко.     И еще что вы имеете ввиду доб

А чем именно вы хотите рулить?

Если речь о нарезке скорости, так это ipfw pipe. Если об обсчёте безлимов - так в СТГ всё это есть и так, не надо ничего допиливать, только поставить и настроить.

Задача СТГ только в том, чтобы посчитать трафик по указанным направлениям для юзера или снять вовремя денежку согласно тарифа и настроек конфига СТГ. Можно и то и другое. Всё.

Он тем и замечателен, что универсален и не привязывается конкретно к IPFW от FreeBSD или IPNAT для Linux.

Т.е. для решения остальных задач в любом случае нужны скрипты, которые будут вести обработку условий и вкл/откл определённой функции для конкретной цели.

Код скрипта обычно добавляются в родные скрипты СТГ, вида "OnConnect" и выполняются при том или ином действии юзера, вызванным им самим или вашим собственным желанием.

Примеров на форуме просто завались.

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

так в СТГ всё это есть и так, не надо ничего допиливать, только поставить и настроить.

Что именно поставить и настроить? Если сам СТГ - то уже месяц стоит и все настроено. Анлимов не нашел, только предоплаченный. Конфигуратор виндовый 1.91.9

Задача СТГ только в том, чтобы посчитать трафик по указанным направлениям для юзера или снять вовремя денежку согласно тарифа и настроек конфига СТГ. Можно и то и другое. Всё.

Именно так. Только вот для любых тарифов, даже если в настройках тарификации указана цена 0 за мегабайт он все равно уводит в минуса (-0) при изначальном нулевом балансе (не при снятии абонплаты). Да и не удобно это. Намного проще было бы в конфигураторе ткнуть галку "анлим" и указать скорость ин/аут. А скриптами потом отрабатывать.

Код скрипта обычно добавляются в родные скрипты СТГ, вида "OnConnect" и выполняются при том или ином действии юзера, вызванным им самим или вашим собственным желанием.

Примеров на форуме просто завались.

Об этом как раз речь не идет.

Ссылка на сообщение
Поделиться на других сайтах
Что именно поставить и настроить? Если сам СТГ - то уже месяц стоит и все настроено. Анлимов не нашел, только предоплаченный. Конфигуратор виндовый 1.91.9

А поставить галочки "Без порога" и "Не зависит от времени" что вам запрещает?

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

А поставить галочки "Без порога" и "Не зависит от времени" что вам запрещает?

"Не зависит..." стоит везде.

"Без порога" - на внешний трафик стоит. На локальный - 1 копейка после 20Гб.

 

Мне, вообще, пофигу - могу и без СТГ рулить, через ssh. Но мальчику на приеме платежей сложно объяснить, что нужно поправить в конфигах htb, и какие команды дать системе, чтобы у клиента изменился тариф (скорость)... да еще и рутовый доступ давать... я похож на идиота?

 

Вообще, я человек ленивый. Мне проще один раз поколупаться, настроить и забыть :)

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

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

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

Мне, вообще, пофигу - могу и без СТГ рулить, через ssh. Но мальчику на приеме платежей сложно объяснить, что нужно поправить в конфигах htb, и какие команды дать системе, чтобы у клиента изменился тариф (скорость)... да еще и рутовый доступ давать... я похож на идиота?

 

Вообще, я человек ленивый. Мне проще один раз поколупаться, настроить и забыть :rolleyes:

 

Хм, у меня скорость рулится через скрипты OnConnect, OnDisconnect.

При смене тарифа - сразу же меняется и скорость через скрипт OnChenge.

Толи вы сделали изменение тарифа мгновенно, толи смена тарифа с нового месяца, скрипт OnChenge отработается и скорость изменится.

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

И сказать, что мне это не удобно? :)

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

Плюс крон работает на дневную и ночную скорость.

Плюс крон работает на лимитированный трафик за сутки (чем больше скачал, тем меньше скорость, с полуночи счетчик сбрасывается).

 

И что самое главное скрипты у Stargazer дают такую гибкость, что мама не горюй - только лишь бы лени небыло - а через скрипты твори все что тебе душа пожелает.

 

 

Приведу свои скрипты для Linux:

 

shaper.sh - запускаем со стартом системы

#!/bin/bash

int_iface_up=eth0
int_iface_down=eth1

iptables -t mangle --flush

tc qdisc add dev $int_iface_down root handle 1: htb
tc class add dev $int_iface_down parent 1: classid 1:1 htb rate 100mbit ceil 100mbit

tc qdisc add dev $int_iface_up root handle 1: htb
tc class add dev $int_iface_up parent 1: classid 1:1 htb rate 100mbit ceil 100mbit

 

shaper.stop - если вдруг понадобилось очистить шейпер

#!/bin/bash

iptables -t mangle --flush

tc qdisc del dev eth0 root handle 1: htb
tc qdisc del dev eth1 root handle 1: htb

 

day_night.sh - Скрипт запускаем в 00.00 и в 10.00 - скорость день-ночь.

#!/bin/bash

# переменные
####################################
int_iface_up=eth0
int_iface_down=eth1
default_speed=64kbit
####################################

function fspeedkb()
{
       ftariff=$1
       pr_ftariff=`echo $ftariff | head -c 3`
       pr_bomba=`echo $tariff | head -c 5`

       proverka=$(echo "$ftariff" | sed "s/[^0-9]//g")

       if [ "$proverka" != "" ]
       then
           if [ `date +"%H:%M"` \< "10:00" ]
           then
               if [ "$pr_bomba" = "bomba" ]
                 then
                   fspeedkb=$(($proverka * 4096 )) # Ночной тариф БОМБА
                 else
                   fspeedkb=$(($proverka * 2048 )) # Ночная скорость
                 fi
           else
               fspeedkb=$(($proverka * 1024 )) # Дневная скорость
           fi
       fi


       if [ "$proverka" = "" ]; # Если мы не нашли никаких цифр - ставим значение по дефолту
       then
               fspeedkb=65536
       fi


       if [ "$ftariff" = "mriya" ]; # Это особый тариф, его можно убрать - просто для меня это удобно.
       then
               fspeedkb=20000000
       fi


       echo $fspeedkb"bit"
}



for user in `ls /var/stargazer/online_users`
do

 tariff=$(grep -i "^tariff=" /var/stargazer/users/$user/conf | cut -f 2 -d"=")
 pr_tariff=`echo $tariff | head -c 3`
 if [ "$pr_tariff" != "dym" ]
 then

   speedkb=`fspeedkb $tariff`

   mark=$(cat /var/stargazer/users/$user/shaper_mark)
   mark1=$(cat /var/stargazer/users/$user/shaper_mark1)
   echo "$speedkb" > /var/stargazer/users/$user/shaper_rate

   # Shaper
   ######################################################################################
   #INET-Download
   /sbin/tc class change dev $int_iface_down parent 1:1 classid 1:$mark htb rate $speedkb


   #INET-Upload
   /sbin/tc class change dev $int_iface_up parent 1:1 classid 1:$mark1 htb rate $speedkb
   ######################################################################################

 fi

done

 

 

dynamic_10min.sh - скрипт запускаем каждые 10 минут, для проверки юзеров, которые находятся у нас на динамических тарифах.

Что такое динамический тариф, пример. Тариф под именем dym_512

Изначально скорость у нас 512 килобит, при превышении порога трафика по скачке в 500 МБ, скорость падает в два раза и того она становится 256 килобит, при превышении 1 ГБ, скорость падает в 4 раза и того она будет составляеть 128 килобит.

#!/bin/bash


(
   flock -x 200


# переменные
####################################
int_iface_up=eth0
int_iface_down=eth1
####################################


for user in `ls /var/stargazer/dynamic/`
do

 trafik=$(grep -i "^D0=" /var/stargazer/users/$user/stat | cut -f 2 -d"=")
 echo "$trafik" > /var/stargazer/dynamic/$user/10min

 sytki=$(cat /var/stargazer/dynamic/$user/sytki)
 raznica=$(($trafik - $sytki))
 echo "$raznica" > /var/stargazer/dynamic/$user/raznica

 if [ $raznica -gt 524288000 ]
 then 
   echo "1" > /var/stargazer/dynamic/$user/sostoyanie
 fi

 if [ $raznica -gt 1048576000 ]
 then
   echo "2" > /var/stargazer/dynamic/$user/sostoyanie
 fi


 tariff=$(grep -i "^tariff=" /var/stargazer/users/$user/conf | cut -f 2 -d"=")




 function fspeedkb()
 {
         ftariff=$1

         proverka=$(echo "$ftariff" | sed "s/[^0-9]//g")

  sostoyanie=$(cat /var/stargazer/dynamic/$user/sostoyanie)

         if [ "$proverka" != "" ]
         then
           case $sostoyanie in
             "0") fspeedkb=$(($proverka * 1024 ));;
             "1") fspeedkb=$(($proverka * 512 ));;
             "2") fspeedkb=$(($proverka * 256 ));;
           esac
         fi

         if [ "$proverka" = "" ];
         then
                 fspeedkb=65536
         fi


         echo $fspeedkb"bit"
 }


 speedkb=`fspeedkb $tariff`
 statysonline=$(cat /var/stargazer/dynamic/$user/statysonline)


 if [ "$statysonline" == "1" ]
 then

   mark=$(cat /var/stargazer/users/$user/shaper_mark)
   mark1=$(cat /var/stargazer/users/$user/shaper_mark1)

   echo "$speedkb" > /var/stargazer/users/$user/shaper_rate

   #Download
   #################################
   # INET
   /sbin/tc class change dev $int_iface_down parent 1:1 classid 1:$mark htb rate $speedkb


   #Upload
   ##################################
   # INET
   /sbin/tc class change dev $int_iface_up parent 1:1 classid 1:$mark1 htb rate $speedkb

 fi

done


) 200>/tmp/clean_stat.lock

 

 

dynamic_sytki.sh - скрипт запускаем где-то в 00.05 - для сброса суточного лимита на динамических тарифах.

#!/bin/bash


# Проверка на запуск 10-ти минутного файла, если он запущен, ждем пока он не окончит работу
(
   flock -x 200


date_sytki=$(cat /var/stargazer/date_sytki)
if [ `date +"%m/%d/%y"` = "$date_sytki" ]
then
 exit
fi


# переменные
####################################
int_iface_up=eth0
int_iface_down=eth1
####################################


for user in `ls /var/stargazer/dynamic/`
do

 trafik=$(grep -i "^D0=" /var/stargazer/users/$user/stat | cut -f 2 -d"=")
 echo "$trafik" > /var/stargazer/dynamic/$user/sytki
 echo "0" > /var/stargazer/dynamic/$user/sostoyanie


 tariff=$(grep -i "^tariff=" /var/stargazer/users/$user/conf | cut -f 2 -d"=")


 function fspeedkb()
 {
         ftariff=$1

         proverka=$(echo "$ftariff" | sed "s/[^0-9]//g")

         if [ "$proverka" != "" ]
         then
          fspeedkb=$(($(echo "$ftariff" | sed "s/[^0-9]//g") * 1024 ))
         fi

         if [ "$proverka" = "" ]
         then
                 fspeedkb=65536
         fi

         echo $fspeedkb"bit"
 }


 speedkb=`fspeedkb $tariff`
 statysonline=$(cat /var/stargazer/dynamic/$user/statysonline)


 if [ "$statysonline" = "1" ]
 then

   mark=$(cat /var/stargazer/users/$user/shaper_mark)
   mark1=$(cat /var/stargazer/users/$user/shaper_mark1)

   echo "$speedkb" > /var/stargazer/users/$user/shaper_rate


   #Download
   #################################
   # INET
   /sbin/tc class change dev $int_iface_down parent 1:1 classid 1:$mark htb rate $speedkb


   #Upload
   ##################################
   # INET
   /sbin/tc class change dev $int_iface_up parent 1:1 classid 1:$mark1 htb rate $speedkb

 fi

done



echo `date +"%m/%d/%y"` > /var/stargazer/date_sytki

) 200>/tmp/clean_stat.lock

 

 

OnConnect

#!/bin/bash
ip=$2

# Удаляем Фильтра
######################################################################
iptables -t filter -D INPUT -s $ip -j QUEUE
while [ $? -eq 0 ]
do
iptables -t filter -D INPUT -s $ip -j QUEUE
done

iptables -t filter -D FORWARD -s $ip -j QUEUE
while [ $? -eq 0 ]
do
iptables -t filter -D FORWARD -s $ip -j QUEUE
done

iptables -t filter -D FORWARD -d $ip -j QUEUE
while [ $? -eq 0 ]
do
iptables -t filter -D FORWARD -d $ip -j QUEUE
done

#iptables -t filter -D OUTPUT -d $ip -j QUEUE
#while [ $? -eq 0 ]
#do
#iptables -t filter -D OUTPUT -d $ip -j QUEUE
#done
#######################################################################

# Добавляем фильтр
#######################################################################
iptables -t filter -A INPUT -s $ip -j QUEUE
iptables -t filter -A FORWARD -s $ip -j QUEUE
iptables -t filter -A FORWARD -d $ip -j QUEUE
#iptables -t filter -A OUTPUT -d $ip -j QUEUE
#######################################################################

# NAT
#######################################################################
# Удаляем НАТ
iptables -t nat -D POSTROUTING -s $ip -o eth0  -j SNAT --to внешний_айпи
while [ $? -eq 0 ]
do
iptables -t nat -D POSTROUTING -s $ip -o eth0  -j SNAT --to внешний_айпи
done
# Добавляем НАТ
iptables -t nat -A POSTROUTING -s $ip -o eth0  -j SNAT --to внешний_айпи
#######################################################################

int_iface_up=eth0
int_iface_down=eth1

# Login
LOGIN=$1

#user IP
IP=$2

#cash
CASH=$3

#user ID
ID=$4

#Selected dirs to connect
DIRS=$5

default_speed=64kbit

echo "$ip" > /var/stargazer/online_users/$LOGIN
echo "$ID" > /var/stargazer/users/$LOGIN/ID


tariff=$(grep -i "^tariff=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=")
pr_tariff=`echo $tariff | head -c 3`
pr_bomba=`echo $tariff | head -c 5`
if [ "$pr_tariff" = "dym" ];
then
 echo "1" > /var/stargazer/dynamic/$LOGIN/statysonline
 sostoyanie=$(cat /var/stargazer/dynamic/$LOGIN/sostoyanie)
fi


function fspeedkb()
{
       ftariff=$1
       pr_ftariff=`echo $ftariff | head -c 3`

proverka=$(echo "$ftariff" | sed "s/[^0-9]//g")

if [ "$proverka" != "" ]
then
        if [ "$pr_tariff" = "dym" ]
       	then
               	sostoyanie=$(cat /var/stargazer/dynamic/$LOGIN/sostoyanie)
                case $sostoyanie in
       	                "0") fspeedkb=$(($proverka * 1024 ));;
               	        "1") fspeedkb=$(($proverka * 512 ));;
                       	"2") fspeedkb=$(($proverka * 256 ));;
                esac
        else
       	        if [ `date +"%H:%M"` \< "10:00" ]
                then
                               if [ "$pr_bomba" = "bomba" ]
                               then
                                 fspeedkb=$(($proverka * 4096 )) # Ночной тариф БОМБА
                               else
                                 fspeedkb=$(($proverka * 2048 )) # Ночной тариф
                               fi
               	else
                       	fspeedkb=$(($proverka * 1024 )) # Дневной тариф
                fi
        fi
fi


if [ "$proverka" = "" ];
then
	fspeedkb=65536
fi


       if [ "$ftariff" = "mriya" ];
       then
               fspeedkb=20000000
       fi


echo $fspeedkb"bit"
}

# Через функцию fspeedkb() из тарифного плана  узнаем скорость для шейпера 
# функция работает: извлекает числовое значение из тарифного плана, 
# это число идет килобитах, чтобы получить в битах - умножаем на 1024
speedkb=`fspeedkb $tariff`


declare -i mark=$ID+10
declare -i mark1=$ID+2000

echo "$mark" > /var/stargazer/users/$LOGIN/shaper_mark
echo "$mark1" > /var/stargazer/users/$LOGIN/shaper_mark1
echo "$speedkb" > /var/stargazer/users/$LOGIN/shaper_rate

iptables -t mangle -A FORWARD ! -p icmp -d $IP -j MARK --set-mark $mark
iptables -t mangle -A FORWARD ! -p icmp -s $IP -j MARK --set-mark $mark1




##########################################################################################
#Download
tc class add dev $int_iface_down parent 1:1 classid 1:$mark htb rate $speedkb
tc filter add dev $int_iface_down parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark
##################################


#Upload
##################################
tc class add dev $int_iface_up parent 1:1 classid 1:$mark1 htb rate $speedkb
tc filter add dev $int_iface_up parent 1: protocol ip prio 3 handle $mark1 fw classid 1:$mark1

tc class add dev $int_iface_down parent 1:1 classid 1:$mark1 htb rate $speedkb
tc filter add dev $int_iface_down parent 1: protocol ip prio 3 handle $mark1 fw classid 1:$mark1
###########################################################################################

 

 

OnDisconnect

#!/bin/bash

ip=$2

iptables -t filter -D INPUT -s $ip -j QUEUE
while [ $? -eq 0 ]
do
iptables -t filter -D INPUT -s $ip -j QUEUE
done

##################################

iptables -t filter -D FORWARD -s $ip -j QUEUE
while [ $? -eq 0 ]
do
iptables -t filter -D FORWARD -s $ip -j QUEUE
done

##################################

iptables -t filter -D FORWARD -d $ip -j QUEUE
while [ $? -eq 0 ]
do
iptables -t filter -D FORWARD -d $ip -j QUEUE
done

##################################

#iptables -t filter -D OUTPUT -d $ip -j QUEUE
#while [ $? -eq 0 ]
#do
#iptables -t filter -D OUTPUT -d $ip -j QUEUE
#done

iptables -t nat -D POSTROUTING -s $ip -o eth0  -j SNAT --to внешний_айпи


int_iface_up=eth0
int_iface_down=eth1

# Login
LOGIN=$1

#user IP
IP=$2

#cash
CASH=$3

#user ID
ID=$4

#Selected dirs to disconnect
DIRS=$4

tariff=$(grep -i "^tariff=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=")
pr_tariff=`echo $tariff | head -c 3`
if [ "$pr_tariff" == "dym" ];
then
 echo "0" > /var/stargazer/dynamic/$LOGIN/statysonline
fi


rm /var/stargazer/online_users/$LOGIN

mark=$(cat /var/stargazer/users/$LOGIN/shaper_mark)
mark1=$(cat /var/stargazer/users/$LOGIN/shaper_mark1)
rate=$(cat /var/stargazer/users/$LOGIN/shaper_rate)

# INET
############################################################################

if [ -n "$mark" ]
then
   iptables -t mangle -D FORWARD ! -p icmp -d $IP -j MARK --set-mark $mark
   while [ $? = 0 ]
   do
    iptables -t mangle -D FORWARD ! -p icmp -d $IP -j MARK --set-mark $mark
   done
fi

if [ -n "$mark1" ]
then
   iptables -t mangle -D FORWARD ! -p icmp -s $IP -j MARK --set-mark $mark1
   while [ $? = 0 ]
   do
           iptables -t mangle -D FORWARD ! -p icmp -s $IP -j MARK --set-mark $mark1
   done
fi

############################################################################


#Download
##########################################################################################
# INET
tc filter del dev $int_iface_down parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark
tc class del dev $int_iface_down parent 1:1 classid 1:$mark htb rate $rate


#Upload
##################################
# INET
tc filter del dev $int_iface_up parent 1: protocol ip prio 3 handle $mark1 fw classid 1:$mark1
tc class del dev $int_iface_up parent 1:1 classid 1:$mark1 htb rate $rate

tc filter del dev $int_iface_down parent 1: protocol ip prio 3 handle $mark1 fw classid 1:$mark1
tc class del dev $int_iface_down parent 1:1 classid 1:$mark1 htb rate $rate
###########################################################################################


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

 

 

OnChange

#!/bin/bash

login=$1
param=$2
oldValue=$3
newValue=$4

int_iface_up=eth0
int_iface_down=eth1

#echo "User: '$login'. Parameter $param changed from '$oldValue' to '$newValue'" >> /var/stargazer/users.chg.log

#####################################################################################
# Функция для определения скорости через тарифный план
function fspeedkb()
{
       ftariff=$1
       pr_ftariff=`echo $ftariff | head -c 3`
       pr_bomba=`echo $tariff | head -c 5`

       proverka=$(echo "$ftariff" | sed "s/[^0-9]//g")

       if [ "$proverka" != "" ]
       then
               if [ "$pr_tariff" = "dym" ]
               then
                       sostoyanie=$(cat /var/stargazer/dynamic/$login/sostoyanie)
                       case $sostoyanie in
                               "0") fspeedkb=$(($proverka * 1024 ));;
                               "1") fspeedkb=$(($proverka * 512 ));;
                               "2") fspeedkb=$(($proverka * 256 ));;
                       esac
               else
                       if [ `date +"%H:%M"` \< "10:00" ]
                       then
                               if [ "$pr_bomba" = "bomba" ]
                               then
                                 fspeedkb=$(($proverka * 4096 )) # Ночной тариф БОМБА
                               else
                                 fspeedkb=$(($proverka * 2048 )) # Ночной тариф
                               fi
                       else
                               fspeedkb=$(($proverka * 1024 )) # Дневной тариф
                       fi
               fi
       fi


       if [ "$proverka" = "" ];
       then
               fspeedkb=65536
       fi


       if [ "$ftariff" = "mriya" ];
       then
               fspeedkb=20000000
       fi


       echo $fspeedkb"bit"
}
#####################################################################################





if [ "$param" = "tariff" ];
then
####################################################################################################################

#echo "User: '$login'. Parameter $param changed from '$oldValue' to '$newValue'" >> /var/stargazer/users.chg.log

   new_tariff=`echo $newValue | head -c 3`
   old_tariff=`echo $oldValue | head -c 3`

   # Если у юзера динамический тариф, тогда создаем файл в /var/stargazer/dynamic/$login с состоянием трафика
   if [ "$new_tariff" = "dym" ];
   then
   #===================================================================================
     mkdir -p /var/stargazer/dynamic/$login

     onl=$(grep -i "^AlwaysOnline=" /var/stargazer/users/$login/conf | cut -f 2 -d"=")

     # Делаем проверку на наличие файла "stat", при создании нового юзера
     #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     if [ -f /var/stargazer/users/$login/stat ];
     then
       trafik=$(grep -i "^D0=" /var/stargazer/users/$login/stat | cut -f 2 -d"=")
       echo "$trafik" > /var/stargazer/dynamic/$login/sytki
       echo "$trafik" > /var/stargazer/dynamic/$login/10min
     else
       echo "0" > /var/stargazer/dynamic/$login/sytki
       echo "0" > /var/stargazer/dynamic/$login/10min
     fi
     #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

     echo "0" > /var/stargazer/dynamic/$login/raznica
     echo "0" > /var/stargazer/dynamic/$login/sostoyanie


    if [ "$onl" = "1" ];
    then
      echo "1" > /var/stargazer/dynamic/$login/statysonline
    fi

   #===================================================================================
   fi


  # Если юзер меняет тариф с динамического на обычный тариф - тогда удаляем папку в /var/stargazer/dynamic/$login с состоянием трафика
  if [ "$old_tariff" = "dym" ];
  then
    cd /var/stargazer/dynamic/
    rm -rf $login
  fi

  # Меняем шейп, если тариф был изменен
  if [ "$newValue" != "$oldValue" ];
  then
    speedkb=`fspeedkb $newValue`

    mark=$(cat /var/stargazer/users/$login/shaper_mark)
    mark1=$(cat /var/stargazer/users/$login/shaper_mark1)
    echo "$speedkb" > /var/stargazer/users/$login/shaper_rate

    # Shaper
    ######################################################################################
    #INET-Download
    /sbin/tc class change dev $int_iface_down parent 1:1 classid 1:$mark htb rate $speedkb

    #INET-Upload
    /sbin/tc class change dev $int_iface_up parent 1:1 classid 1:$mark1 htb rate $speedkb
    /sbin/tc class change dev $int_iface_down parent 1:1 classid 1:$mark1 htb rate $speedkb
    ######################################################################################     
  fi

####################################################################################################################
fi

 

otkonline.sh - запускаем при старте системы - чтобы очистить список юзеров Онлайн.

#!/bin/bash

for user in `ls /var/stargazer/dynamic/`
do
 echo "0" > /var/stargazer/dynamic/$user/statysonline
done

 

 

 

Большой огромный минус этих скриптов, что они завязаны на Файловой БД.

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

Скрипты 100% рабочие, уже пашут более 1 года.

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

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

 

 

Ну и благодарство madf'y за содеянную помощь в идеи и написании этих же скриптов. )))

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

Небесный , а теперь посадите за конфигуратор менеджера и попросите добавить новый тариф, который сразу заработает. :rolleyes:

 

Вот-вот. Опять лезть в скрипты и править их под новые условия. Не правильно это с точки зрения управления биллингом. Добаваление/изменение тарифов это рядовая задача, этим не должен заниматься сисадмин.

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

Как я уже писал на этом форуме, вобще кошерно если вид этих полей можно будет настраивать (input, checkbox, textarea, etc). Еще более кошерно, если можно будет настраивать со стороны сервера.

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

На данном эта мы имеем большой набор костылей, который часто нужно переделывать после вполне нетривальных действий.

 

 

Эх...мечты-мечты... :)

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

Во-первых - это уже задача не менеджера!!! И не надо на ихние плечи это вешать.

Во-вторых, человек со средней смекалкой, почитав документацию - сделает это легко.

 

 

И еще что вы имеете ввиду добавить новый тариф? Какой тариф?.

У меня скрипты более модифицированные, чем приводились ранее.

Скорость берется из числа в имени тарифа. Например я назву тариф анлим128, или безлимит128, или просто 128, или же петя128васяколя.

Все эти тарифы будут иметь скорость 128 килобит, и не надо будет лезть в скрипты и править их. Ибо я заложил в скрипты не конкретное

имя тарифа --> скорость, а вытягивания из имени тарифного плана цыфровое значение!!!

 

Если вы создадите тариф с именем анлим1024, а у нас до этого небыло такого тарифа в биллинге - тариф будет иметь скрость 1 Мегабит.

 

Ну, вот и мечтайте дальше.

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

Небесный , а теперь посадите за конфигуратор менеджера и попросите добавить новый тариф, который сразу заработает. :rolleyes:

 

Вот-вот. Опять лезть в скрипты и править их под новые условия. Не правильно это с точки зрения управления биллингом. Добаваление/изменение тарифов это рядовая задача, этим не должен заниматься сисадмин.

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

Как я уже писал на этом форуме, вобще кошерно если вид этих полей можно будет настраивать (input, checkbox, textarea, etc). Еще более кошерно, если можно будет настраивать со стороны сервера.

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

На данном эта мы имеем большой набор костылей, который часто нужно переделывать после вполне нетривальных действий.

 

 

Эх...мечты-мечты... :)

биллинг это не прокси сервер

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

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

биллинг это не прокси сервер

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

Причем тут прокси-сервер, конфигурация сети и шейперы? Прочитайте что в этом, как Вы выразились, "бреде" написано.

Я не прошу встроить мне в биллинг шейпер и таблицу маршрутизации. Я прошу дайте мне удобоваримых произвольных полей с возможностью передачи их значений в скрипты. Это так сложно понять?

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

Если у вас менеджеры добавляют тарифы в биллинги а секретарши админят БД... ну чтож - сочувствую

Интересная у Вас ирония, а главное очень уместная.

Если все будет админ, то эта вся автоматизация нифик не нужна.

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

Вся проблема и связанные с ней сентенции мягко говоря высосаны из пальца. Для начала не нужно путать понятия тарификации, аккаунтинга, шейпинга и полисинга - логически это практически не взаимосвязанные вещи.

 

Специально для особо одаренных -

 

 

Возможно дело просто в скилле?

 

Я прошу дайте мне удобоваримых произвольных полей с возможностью передачи их значений в скрипты. Это так сложно понять?

Почему-то мне никто не мешает делать анлимы/не анлимы любой извращенности - как с разными скоростями в разное время дня,c полисерами и прочими плюшками, так же как и не мешает и аккаунтить ими же КТВ и прочие услуги типа реальных айпишек.

Что надо - берется и получается без лишних разговоров.

 

Если все будет админ, то эта вся автоматизация нифик не нужна.

а раутингом должны заниматься бухгалтера.. ага...

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

Вся проблема и связанные с ней сентенции мягко говоря высосаны из пальца. Для начала не нужно путать понятия тарификации, аккаунтинга, шейпинга и полисинга - логически это практически не взаимосвязанные вещи.

Никто ж не спорит.

Специально для особо одаренных -

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

 

а раутингом должны заниматься бухгалтера.. ага...

Тариф это вполне финансовая штука такая. Админ должен предоставить возможность управлять тарифами, остальное задача менеджеров. Вы когда-нибудь работали в большой организации? У вас сисадмин занимается финансовыми операциями? Жесть.

 

ЗЫ: дурная манера невнимательно читать и после этого кого-то обвинять.

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

йесссс сьор! сию минуту! Цена вопроса?

 

Вы когда-нибудь работали в большой организации?

я то и продолжаю работать, а вы видели что-то большее чем, цитирую "Есть сеть около 100 машин. Задача пустить их через в интернет через adsl. Пакет ОГО-Ультра от Укртелефона."?

 

У вас сисадмин занимается финансовыми операциями?

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

Предчувствую что такого не наблюдается в "К тазику подключена локальная сеть 10.10.0.0/24"

 

Ознакомились бы хотябы с понятиями и терминологией для начала.

 

 

ЗЫ: дурная манера невнимательно читать и после этого кого-то обвинять.

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

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

Не буду кормить троля. :rolleyes: Ищите мои посты через поиск дальше. Там еще 5 летние к примеру повытаскивайте, ага.

 

 

ЗЫ: и вобще это предложение было более к разрабочикам, чем к людям, которые от нефик делать ищут чужие посты поиске.

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

няма няма

 

Там еще 5 летние к примеру повытаскивайте, ага.

23 Февраль 2011 - 12:03

02 Декабрь 2010 - 11:59

 

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

 

ЗЫ: и вобще это предложение было более к разрабочикам, чем к людям, которые от нефик делать ищут чужие посты поиске.

бида бида

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

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

 

За сим откланяюсь. Говорить с Вами мне не о чем.

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

Это был последний аргумент который были вы способны выдавить из себя?

 

Вам весело прийдется.

мне весело - гарантирую.

 

Я разочарован. Продолжайте провайдить на ультре :rolleyes:

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

Zero_real, объясни пожалуйста для чего нужно это делать в конфигураторе? скрипты биллинга (включая шейпер и прочие плюшки) можно настроить так чтобы туда никогда не лазить, они будут обратывать нужные вам поля конфигурации юзера/тарифов, остаётся лишь добавлять, удалять, править тарифы или пользователей, а всё остальное они будут до вас доделывать, а вот другое дело если "лень" или "не умею" тогда поручите это тому кто с *nix-ами на ты.

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

nightfly веселун!!! :rolleyes::)

Ладно ребята, не обижайте парня.

 

Еще добавлю Zero_real, я еще в жизни не встречал ни одной программы, которая бы подходила мне на все 100%, вечно мне что-то не устраивает, потому я и занялся изучением коддинга, чтобы прогнуть этот "мир" под себя.

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

Zero_real, объясни пожалуйста для чего нужно это делать в конфигураторе? скрипты биллинга (включая шейпер и прочие плюшки) можно настроить так чтобы туда никогда не лазить, они будут обратывать нужные вам поля конфигурации юзера/тарифов, остаётся лишь добавлять, удалять, править тарифы или пользователей, а всё остальное они будут до вас доделывать, а вот другое дело если "лень" или "не умею" тогда поручите это тому кто с *nix-ами на ты.

Так и не хватает этих самых полей в конфигураторе. Я вот и прошу что-то подобное полям юзердата в настройках тарифа чтобы потом обрабатывать их скриптом. Прописывать ширину каналов в названии тарифа это самый обычный костыль, коих можно придумать много, иначе это не назвать. Добавить 10 полей в базу/показать их в конфигураторе/отать их значения скриптам это так сложно реализовать?

 

nightfly веселун!!! :rolleyes::)

Ладно ребята, не обижайте парня.

 

Еще добавлю Zero_real, я еще в жизни не встречал ни одной программы, которая бы подходила мне на все 100%, вечно мне что-то не устраивает, потому я и занялся изучением коддинга, чтобы прогнуть этот "мир" под себя.

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

В эпоху же анлимов и разнобразности услуг (iptv, платные игры, etc) работа с стг превращается в обвешивание костылями.

Я прошу лишь расширить возможность удобного "допиливания" биллинга путем создания произвольных полей тарифов, админов и т.д. Это же просто.

 

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

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

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

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

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

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

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

Вхід

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

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

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


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