Перейти до

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


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

# ============ 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

 

 

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

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

непонятно откуда берет значение переменная $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

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

тогда так:

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

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

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

 

 

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

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

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

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

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

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

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

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

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

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

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

Вхід

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

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

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

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