#!/usr/local/bin/bash
DATE4LOG=`date '+%Y/%m/%d %H:%M:%S'`
LOGFILE=/var/log/switchdaynight.log
# ( name dayspeed nightspeed ... )
TARIFS=( unlim 163000 320000 unlim2 307000 600000 \
unlim3 665000 1300000 unlim4 1270000 2000000 )
CNT1=${#TARIFS[@]}
QOSTARIFS=( korp 256000 128000 korp2 512000 128000 \
korp3 1024000 128000 korp4 1500000 128000 )
CNT2=${#QOSTARIFS[@]}
DATE=`date '+%H'`
#day2000
DAY=1
QOSDAY=2
if [ $DATE -lt 8 ]; then
#night
DAY=2
#echo "DAY=2"
elif [ $DATE -lt 20 ]; then
#day
QOSDAY=1
#echo "QOSDAY=1"
fi
function sql {
TARIF=$1
RATE=$2
let BURST=$RATE/5
INSHAPE="update radgroupreply set value='in#2#Inet=all rate-limit \
$RATE $BURST' where groupname='$TARIF' and left(value,4)='in#2';"
OUTSHAPE="update radgroupreply set value='out#2#Inet=all rate-limit \
$RATE $BURST' where groupname='$TARIF' and left(value,5)='out#2';"
echo $INSHAPE
echo $OUTSHAPE
}
(
for (( i=0;i<$CNT1;i++, i++, i++)); do
j=i+$DAY
sql ${TARIFS[${i}]} ${TARIFS[${j}]}
done
for (( i=0;i<$CNT2;i++, i++, i++)); do
j=i+$QOSDAY
sql ${QOSTARIFS[${i}]} ${QOSTARIFS[${j}]}
done
) | /usr/local/bin/mysql -u xxx --password=xxx radius
echo "$DATE4LOG: switchdaynight.sh done" >> $LOGFILE
вторник, 25 августа 2009 г.
FreeBSD billing: переключение скоростей
watchlink.sh для mpd5
#!/bin/sh
mpd_user=xxx
mpd_pass=xxx
mpd_socket="11.1.1.1:5006"
#Если шлюз по умолчанию есть и пинг есть, то выходим
GW=`netstat -rn -f inet |awk '/^default/ {print $2}'`
test "$GW" != "" && PING=`ping -c 1 -t 2 $GW` && exit
#Если mpd5 не запущен, запускаем и выходим
pgrep -x mpd5 > /dev/null || { /usr/local/etc/rc.d/mpd5 start ; exit; }
#Mpd запущен, пытаемся через telnet поднять интерфейс к прову
URI="http://${mpd_socket}/cmd?link%20L1&open"
HTTP_AUTH="basic:*:$mpd_user:$mpd_pass" fetch $URI > /dev/null
пятница, 12 декабря 2008 г.
интересная статья о причинах финансового кризиса
Кажется наконец-то нашелся первоисточник статьи, которая мелькала на нескольких форумах:
ИСТИННЫЕ ПРИЧИНЫ ВОЗНИКНОВЕНИЯ
МИРОВОГО ЭКОНОМИЧЕСКОГО КРИЗИСА
ИСТИННЫЕ ПРИЧИНЫ ВОЗНИКНОВЕНИЯ
МИРОВОГО ЭКОНОМИЧЕСКОГО КРИЗИСА
понедельник, 8 декабря 2008 г.
еще немного о деревьях в sql-2 (права доступа)
Конечно, какое же дерево без разделения прав доступа!
Похоже это будет на права доступа в ОС Netware, т.е. элементы списка права доступа наследуются "на лету" с родительских объектов, соответственно, никаких тормозов при изменении прав доступа, но расчет эффективных прав будет требовать немного больше затрат. Реализованы также права доступа для "Владельца" объекта (смотри поле "Owner" в таблице "Objects").
Похоже это будет на права доступа в ОС Netware, т.е. элементы списка права доступа наследуются "на лету" с родительских объектов, соответственно, никаких тормозов при изменении прав доступа, но расчет эффективных прав будет требовать немного больше затрат. Реализованы также права доступа для "Владельца" объекта (смотри поле "Owner" в таблице "Objects").
пятница, 28 ноября 2008 г.
еще немного о деревьях в sql
Давно хочется поделиться своим вариантом реализации деревьев.
Однажды была поставлена задачка в короткие сроки реализовать универсальную PDM-систему для хранения проектных данных. В качестве СУБД - Firebird. Из того что нашел в инете на тему деревьев в SQL больше всего понравилась статья ООП в РСУБД, и идея была упрощена до предела. Основная структура БД состоит всего из четырех таблиц: Objects, Attribs, Links, Rights.
Однажды была поставлена задачка в короткие сроки реализовать универсальную PDM-систему для хранения проектных данных. В качестве СУБД - Firebird. Из того что нашел в инете на тему деревьев в SQL больше всего понравилась статья ООП в РСУБД, и идея была упрощена до предела. Основная структура БД состоит всего из четырех таблиц: Objects, Attribs, Links, Rights.
четверг, 10 апреля 2008 г.
Немного о TDMS
Провел мини-расследование, чем отличаются Developer и Client версии.
Целью было желание превращать установленную Dev-версию в обычную клиентскую (и наоборот). Обычно для этого надо переустановить продукт. Выяснилось, что для превращения достаточно в product.dat изменить параметр SetupType(2 соответствует обычному клиентскому месту, 1 - developer). Ну и конечно надо прописать нужный серийник в CDKey. Для полного счастья потребуется изменить ключ Software (Software=TDMSClient 3.0) и соотв. (Software=TDMSDeveloper 3.0). Но в самой программе на включение девелоперских фич типа редактора скриптов влияет только параметр SetupType.
Однако, превратив таким образом клиентское место в девелоперское, мы не получим возможности создавать новую БД, поскольку в "нормальной" девелоперской установке присутствуют SQL-скрипты в каталоге SQL
Целью было желание превращать установленную Dev-версию в обычную клиентскую (и наоборот). Обычно для этого надо переустановить продукт. Выяснилось, что для превращения достаточно в product.dat изменить параметр SetupType(2 соответствует обычному клиентскому месту, 1 - developer). Ну и конечно надо прописать нужный серийник в CDKey. Для полного счастья потребуется изменить ключ Software (Software=TDMSClient 3.0) и соотв. (Software=TDMSDeveloper 3.0). Но в самой программе на включение девелоперских фич типа редактора скриптов влияет только параметр SetupType.
Однако, превратив таким образом клиентское место в девелоперское, мы не получим возможности создавать новую БД, поскольку в "нормальной" девелоперской установке присутствуют SQL-скрипты в каталоге SQL
среда, 2 апреля 2008 г.
Первый взгляд на picolisp
Итак, начнем.
Идем на www.software-lab.de/down.html. Свежая версия вышла совсем недавно и весит меньше 400кб. Разархивируем прямо в домашний каталог, компилируем (поначалу не мог понять, почему make у меня не работает, пока не допилю вручную Makefile). Потом сообразил, что надо использовать gmake, и все прекрасно собралось.
Идем на www.software-lab.de/down.html. Свежая версия вышла совсем недавно и весит меньше 400кб. Разархивируем прямо в домашний каталог, компилируем (поначалу не мог понять, почему make у меня не работает, пока не допилю вручную Makefile). Потом сообразил, что надо использовать gmake, и все прекрасно собралось.
Подписаться на:
Сообщения (Atom)