gelmas_x 11 Опубліковано: 2009-04-26 09:50:14 Автор Share Опубліковано: 2009-04-26 09:50:14 # ============ 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 Что у меня не так? Кто подскажет? Ссылка на сообщение Поделиться на других сайтах
Slava 1 Опубліковано: 2009-04-26 16:38:49 Share Опубліковано: 2009-04-26 16:38:49 непонятно откуда берет значение переменная $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 Ссылка на сообщение Поделиться на других сайтах
gelmas_x 11 Опубліковано: 2009-04-26 18:38:32 Автор Share Опубліковано: 2009-04-26 18:38:32 а если у пользователя стоит в очереди смена тарифа на следующий месяц? Ссылка на сообщение Поделиться на других сайтах
Slava 1 Опубліковано: 2009-04-27 17:25:56 Share Опубліковано: 2009-04-27 17:25:56 тогда так: 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 Ссылка на сообщение Поделиться на других сайтах
gelmas_x 11 Опубліковано: 2009-04-29 16:22:00 Автор Share Опубліковано: 2009-04-29 16:22:00 тогда так: 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 Спасибо огромное! Ссылка на сообщение Поделиться на других сайтах
nallien 3 Опубліковано: 2009-05-01 17:58:01 Share Опубліковано: 2009-05-01 17:58:01 поакуратней с частым дерганием КК, если вы будете отправлять сообщение и в это время кто-то обновит данные в конфигураторе - вылезет старый добрый глюк с отпаданием управления. и части пользователей сообщения не пойдут, а при более сложных скриптах использующих КК для важных операций - вообще может быть аврал. Ссылка на сообщение Поделиться на других сайтах
Cell 7 Опубліковано: 2009-05-03 09:24:06 Share Опубліковано: 2009-05-03 09:24:06 поакуратней с частым дерганием КК, если вы будете отправлять сообщение и в это время кто-то обновит данные в конфигураторе - вылезет старый добрый глюк с отпаданием управления. и части пользователей сообщения не пойдут, а при более сложных скриптах использующих КК для важных операций - вообще может быть аврал. это можно делать очень ночью по крону ну или распланировать как-то Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас