Jump to content

Информирование пользователей


Recommended Posts

# ============ MESS ==============

 

sgconf="/usr/sbin/sgconf"

bc="/usr/bin/bc"

date=`date`

 

DinM=( 0 31 28 31 30 31 30 31 31 30 31 30 31 )

D=`date '+%Y-%m-%d %H-%M-%S'`

declare -i Month=$((10#${D:5:2}))

declare -i Day=$((10#${D:8:2}))

trf="/var/stargazer/tariffs"

 

if [ $Day -gt $(( ${DinM[$Month]}-7 )) ]; then

Fee=$(cat $trf/$tariff.tf | grep "Fee=" | cut -d"=" -f2)

if [ $(echo "$CASH < $Fee" | $bc) != 0 ]; then

$sgconf set -s localhost -p 5555 -a login -w passwd -u $LOGIN -m test

 

 

Что у меня не так? Кто подскажет?

Link to post
Share on other sites

непонятно откуда берет значение переменная $tariff

попробуй так только это работает если база СТГ лежит в /var/stargazer

это вариант с форматирование вывода после запятой выдается 2 знака а не 6 как в базе стг

usersconf="/var/stargazer/users/$LOGIN/conf"
TariffName=`cat "$usersconf" | grep "Tariff=" | cut -d"=" -f2`
sgconf="/sbin/sgconf"
bc="/usr/bin/bc"
date=`date`
DinM=( 0 31 28 31 30 31 30 31 31 30 31 30 31 )
D=`date '+%Y-%m-%d %H-%M-%S'`
declare -i Month=$((10#${D:5:2}))
declare -i Day=$((10#${D:8:2}))
tariffs="/var/stargazer/tariffs"
if [ $Day -gt $(( ${DinM[$Month]}-3 )) ]; then
Fee=$(cat $tariffs/$TariffName.tf | grep "Fee=" | cut -d"=" -f2)
N=`expr length $CashN`
M=`expr length $Fee`
NC=N-4
MCC=M-4
Fee_=${Fee:0:$MCC}
CASH_=${CashN:0:$NC}
if [ $(echo "$CASH < $Fee" | $bc) != 0  ]; then
$sgconf set -s 127.0.0.1 -p 5555 -a mes -w mess -u $LOGIN -m 'Уважаемый пользователь! У вас не оплачен следующий месяц. Ваша абонплата: '$Fee_' грн.; Остаток денег на счету: '$CASH_' грн.'
fi
fi

Link to post
Share on other sites

тогда так:

usersconf="/var/stargazer/users/$LOGIN/conf"
TariffName=`cat "$usersconf" | grep "Tariff=" | cut -d"=" -f2`
TariffCHG=`cat "$usersconf" | grep "TariffChange=" | cut -d"=" -f2`
LTCHG=0
LTCHG=`expr length $TariffCHG`
echo L=$LTCHG
if [ $LTCHG > 0 ]; then
trf=$TariffCHG
else
trf=$TariffName
fi
sgconf="/sbin/sgconf"
bc="/usr/bin/bc"
date=`date`
DinM=( 0 31 28 31 30 31 30 31 31 30 31 30 31 )
D=`date '+%Y-%m-%d %H-%M-%S'`
declare -i Month=$((10#${D:5:2}))
declare -i Day=$((10#${D:8:2}))
tariffs="/var/stargazer/tariffs"
if [ $Day -gt $(( ${DinM[$Month]}-3 )) ]; then
Fee=$(cat $tariffs/$trf.tf | grep "Fee=" | cut -d"=" -f2)
N=`expr length $CashN`
M=`expr length $Fee`
NC=N-4
MCC=M-4
Fee_=${Fee:0:$MCC}
CASH_=${CashN:0:$NC}
if [ $(echo "$CASH < $Fee" | $bc) != 0  ]; then
$sgconf set -s 127.0.0.1 -p 5555 -a mes -w mess -u $LOGIN -m 'Уважаемый пользователь! У вас не оплачен следующий месяц. Ваша абонплата: '$Fee_' грн.; Остаток денег на счету: '$CASH_' грн.'
fi
fi

Link to post
Share on other sites
тогда так:

usersconf="/var/stargazer/users/$LOGIN/conf"
TariffName=`cat "$usersconf" | grep "Tariff=" | cut -d"=" -f2`
TariffCHG=`cat "$usersconf" | grep "TariffChange=" | cut -d"=" -f2`
LTCHG=0
LTCHG=`expr length $TariffCHG`
echo L=$LTCHG
if [ $LTCHG > 0 ]; then
trf=$TariffCHG
else
trf=$TariffName
fi
sgconf="/sbin/sgconf"
bc="/usr/bin/bc"
date=`date`
DinM=( 0 31 28 31 30 31 30 31 31 30 31 30 31 )
D=`date '+%Y-%m-%d %H-%M-%S'`
declare -i Month=$((10#${D:5:2}))
declare -i Day=$((10#${D:8:2}))
tariffs="/var/stargazer/tariffs"
if [ $Day -gt $(( ${DinM[$Month]}-3 )) ]; then
Fee=$(cat $tariffs/$trf.tf | grep "Fee=" | cut -d"=" -f2)
N=`expr length $CashN`
M=`expr length $Fee`
NC=N-4
MCC=M-4
Fee_=${Fee:0:$MCC}
CASH_=${CashN:0:$NC}
if [ $(echo "$CASH < $Fee" | $bc) != 0  ]; then
$sgconf set -s 127.0.0.1 -p 5555 -a mes -w mess -u $LOGIN -m 'Уважаемый пользователь! У вас не оплачен следующий месяц. Ваша абонплата: '$Fee_' грн.; Остаток денег на счету: '$CASH_' грн.'
fi
fi

 

 

Спасибо огромное!

Link to post
Share on other sites

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

Link to post
Share on other sites
поакуратней с частым дерганием КК, если вы будете отправлять сообщение и в это время кто-то обновит данные в конфигураторе - вылезет старый добрый глюк с отпаданием управления. и части пользователей сообщения не пойдут, а при более сложных скриптах использующих КК для важных операций - вообще может быть аврал.

это можно делать очень ночью по крону ну или распланировать как-то

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...