Перейти до

Лимит трафика на 1 день


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

Народ, как сделать, чтобы юзверям каждый день добавлялось определённое количество трафика. Это нужно для того, чтобы пользователь не выкачал весь месячный лимит за 1 день, а трафик распределялся постепенно.

 

Я думаю так, надо изменять поле cash в файле stat, но как это сделать не знаю

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

Я в курсе, что это такое, просто не могу найти под версию 2.4. В соседнем форуме прочитал, что такового ещё нет и в природе, так что пока надо делать все руками. :)

Я просто поднял тему к тому, что может кто-то уже сталкивался с подобной проблемой, и как он это решил.

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

Сделал, правда остается погрешность. Но для меня это не критично. Если кто хочет, может доделать сам.

 

Скрипт stg_daily_cash_clean.sh:

#!/usr/local/bin/bash

 

# Start config

 

users=`ls /var/stargazer/users`

STG_DIR="/var/stargazer/users"

STG_BIN="/sbin/sgconf"

 

# End config

 

#------------------------------------------------------------------------------#

# Start script

 

    for i in ${users}

do

    if [ $i == Elena ]; # Если у какого-то пользователя своя система начисления, в принципе, так же можно брать из массива по другим признакам

  then continue

    elif [ $i == allconnect.log ];

  then continue

    elif [ $i == connect.log ];

  then continue

    else

  DAY_OST=`cat /var/stargazer/users/$i/stat | grep 'Cash=' | cut -d "=" -f2 | cut -d "." -f1`

  DAY_LIM=`cat /var/stargazer/users/$i/conf | grep 'Userdata0=' | cut -d "=" -f2`

  $STG_BIN -s localhost -p 4444 -a admin -w password -u $i -c $(expr $DAY_LIM - $DAY_OST)

  echo " `date +%Y.%m.%d-%H.%M.%S` Daily cash for user $i added Balance on the end of day - $DAY_OST Every day limit - $DAY_LIM Cashe added - `expr $DAY_LIM - $DAY_OST`" >> /var/stargazer/users/$i/daily_cash.log

    fi

done

 

# End script

#-------------------------------------------------------------------------------#

 

Пользуйтесь, если кому нужна такая штука. :)

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

 

Скрипт stg_daily_cash_clean.sh:

#!/usr/local/bin/bash

 

# Start config

 

users=`ls /var/stargazer/users`

STG_DIR="/var/stargazer/users"

STG_BIN="/sbin/sgconf"

 

# End config

 

#------------------------------------------------------------------------------#

# Start script

 

    for i in ${users}

do

     if [ $i == Elena ]; # Если у какого-то пользователя своя система начисления, в принципе, так же можно брать из массива по другим признакам

  then continue

     elif [ $i == allconnect.log ];

  then continue

     elif [ $i == connect.log ];

  then continue

     else

  DAY_OST=`cat /var/stargazer/users/$i/stat | grep 'Cash=' | cut -d "=" -f2 | cut -d "." -f1`

  DAY_LIM=`cat /var/stargazer/users/$i/conf | grep 'Userdata0=' | cut -d "=" -f2`

  $STG_BIN -s localhost -p 4444 -a admin -w password -u $i -c $(expr $DAY_LIM - $DAY_OST)

  echo " `date +%Y.%m.%d-%H.%M.%S` Daily cash for user $i added Balance on the end of day - $DAY_OST Every day limit - $DAY_LIM Cashe added - `expr $DAY_LIM - $DAY_OST`" >> /var/stargazer/users/$i/daily_cash.log

     fi

done

 

# End script

#-------------------------------------------------------------------------------#

 

Пользуйтесь, если кому нужна такая штука. :)

В крон ставить нужно, и в какой период?

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

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

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

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

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

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

Вхід

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

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

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

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