Проверка депозита
Добавлено: Чт фев 03, 2011 11:29 am
Доброго времени суток.
Положил такой скрипт в /etc/ppp/ip-up.d/ для проверки депозита, но проверяется не у всех клиентов, даже в no_money.log не всех пишет. У клиентов на депозите 0.01. Подскажите где искать проблему.
Положил такой скрипт в /etc/ppp/ip-up.d/ для проверки депозита, но проверяется не у всех клиентов, даже в no_money.log не всех пишет. У клиентов на депозите 0.01. Подскажите где искать проблему.
Код: Выделить всё
#!/bin/sh
export CDATE=$(date "+%Y-%m-%d_%H:%M:%S")
FILTERS=`/usr/bin/awk '/Filter-Id/ {print $2}' /var/run/radattr.$1`
IP_PPTP=${PPP_REMOTE}
IF_PPTP=${PPP_IFACE}
UNAME=`/usr/bin/radwho|grep ${IP_PPTP}|awk '{print $2}'|head -n 1`
USERBALANCE=$( /usr/bin/mysql -uroot -p111111 -B abills -e \
"SELECT SUM(users.credit + bills.deposit) FROM users \
INNER JOIN bills ON (users.uid=bills.uid) \
INNER JOIN dv_main ON (dv_main.uid=users.uid) \
WHERE users.id='$UNAME' AND dv_main.tp_id!=1" | /usr/bin/tail -n 1 )
iptables -A FORWARD -i ${IF_PPTP} -o eth3 -s ${IP_PPTP} -j ACCEPT
iptables -A FORWARD -i eth3 -o ${IF_PPTP} -d ${IP_PPTP} -m state --state RELATED,ESTABLISHED -j ACCEPT
if [ "$FILTERS" = "no_money" ]; then
echo "$CDATE User [$1] $FILTERS / $UNAME (${IP_PPTP}) add rules (no_money filter)" >> /var/log/no_money.log
elif [ "x$USERBALANCE" != "x" ] && [ "x$USERBALANCE" != "xNULL" ]; then
echo "$CDATE $UNAME $USERBALANCE negative" >> /var/log/no_money.log
if [ "x$( /usr/bin/awk 'BEGIN { if('$USERBALANCE'<=0.1) print("NEGATIVE") }' )" = "xNEGATIVE" ]; then
echo "$CDATE User [$1] $FILTERS / $UNAME [${IP_PPTP}] add rules (negative deposit $USERBALANCE)" >> /var/log/no_money.log
iptables -D FORWARD -i ${IF_PPTP} -o eth3 -s ${IP_PPTP} -j ACCEPT
iptables -D FORWARD -i eth3 -o ${IF_PPTP} -d ${IP_PPTP} -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A PREROUTING -s ${IP_PPTP} -p tcp -m multiport --dport 80,81,82,8080,3128,443 -j DNAT --to-destination 10.0.0.1:81
else
echo "$CDATE User [$1] $FILTERS / $UNAME [${IP_PPTP}] logged in (deposit: $USERBALANCE)" >> /var/log/no_money.log
fi
fi