Написал патч для sams 1.0.3, добавляющий возможность использовать дополнительно к выделенному трафику, ещё и временный - "Кредит"
Задача:
Пользователю выделено n-мегабайт за период (месяц,неделю, другой) на основании приказа директора. Если он выработал свой лимит то начальник его отдела со служебкой, подписанной директором, приходит и надо включать, потому как оставлять без Интернета людей у нас нельзя, а вот нагнуть потом за fishky.net - это уже второй вопрос.
В патче сделано так, что "Кредит" обнуляется при наступлении нового периода расчёта, т.е. в следующем расчётном периоде надо при необходимости заново добавлять "Кредит".
Реализация:
в таблицу (по умолчанию) squidctrl.squidusers добавляется (обязательно) в конец поле 'credit'.
В daemon.c, demon.c, samsdaemon.c а так же в php скрипты внесены соответствующие изменения для работы с этим полем и его обнулением/отображением.
Как установить:
1. Если ставите с нуля с исходников
то необходимо применить патч diff.diff, сконфигурить, установить, добавить иконку из архива в соответствующие папки. Вместо родного дампа sql использовать одноимённый из архива.
2. Если система sams-1.0.3 уже установлена то:
2.1 Заменяете соответствующие файлы *.php, lang.*, добавляете иконку.
2.1 Заменяете в в корневой папке исходников sams из которого производилась сама установка sams (чтобы параметры configure оставались прежние, ну или заного сконфигурьте) ИЛИ примените патч diff-only-c.diff.
2.2 Примените команду make (gmake)
2.3 Скопируйте рабочие файлы файлы sams, samsdaemon, samsf в папку куда они установлены (не забудте остановить sams* демоны) у меня это /usr/local/sams/bin/
Проверьте как работает система, считается трафик, обнуляется кредит, и отображается таблица пользователей под разными пользователями (Админ, Пользователь, Пользователь которому разрешено смотреть трафик своей группы, Аудитор)
Пользователи работающие в "Кредит" будут мигать жёлтой точкой.
Пишите в форум http://www.permlug.org/node/3119/
ну или в аську, будет возможность отвечу.
Отказ от ответственности:
Всё что я тут накрапал вы применяете на свой страх и риск и вполне возможно и разбираться с проблемами будете сами.
Особенно осторожно с патчами там правятся не только необходимые для работы файлы, а так же и то что мне показалось непонятным и неправильным, так что опять же на свой страх и риск.
У меня пока всё работает прекрасно на:
FreeBSD7.0, всё кроме sams ставилось из портов.
squid-2.7.5 + havp-0.88_1 + clamav-0.94_1
samba-3.0.32_1,1
apache-2.2.9_5
php5-5.2.6_2
mysql-server-5.0.67_1
Параметры configure sams:
./configure --prefix=/usr/local/sams \
--with-configfile=/usr/local/etc/sams.conf \
--with-rcd-locations=/usr/local/etc/rc.d/
##############################################################################
Автор: DogEater
Source rpm для Sams с использованием патча от cj_nik:
http://narod.ru/disk/3679450000/sams-1.0.3-credit.0.src.rpm.html
собирается как для i386 так и для x86_64 платформ.
Это пакет с исходным кодом, перед использованием на вашей системе требуется построение пакета.
Порядок действий:
1)скачиваем пакет по ссылке
2)пересобираем пакет командой rpmbuild --rebuild имя_файла_пакета.
3)устанавливаем собранный пакет с нуля(он должен лежать в /usr/src/redhat/RPMS/имя_платформы/sams-1.0.3-credit.0.имя_платформы.rpm):
rpm -ihv /usr/src/redhat/RPMS/имя_платформы/sams-1.0.3-credit.0.имя_платформы.rpm
После чего следует создать базы данных Sams командами:
mysql -u root -p < /usr/share/sams/data/sams_db.sql
mysql -u root -p < /usr/share/sams/data/squid_db.sql
4)Если вы обновляете Sams установленный из предыдущего пакета следует выполнить команду:rpm -Uhv /usr/src/redhat/RPMS/имя_платформы/sams-1.0.3-credit.0.имя_платформы.rpm
При обновлении надо выполнить команду обновления БД:
mysql -u root -p < /usr/share/sams/data/change.sql
5) стартуем демон самс : /sbin/service sams start
6) уточняем конфигурацию через web-интерфейс и приступаем к работе.
В свойствах пользователя теперь доступно поле "кредит".
При выработке лимита трафика, для того что бы пользователь снова заработал, надо добавить в поле "кредит" число, превышающее сумму трафика из поля "трафик".
Пользователь, работающий в "кредит" отображается мигающей иконкой жёлтого цвета.(для схемы "bumper" иконка продублирована)
Любые дополнения к инструкции по установке are welcome! ;)
Комментарии
Добавил 5 слов и болд :)
На глагне.
Чё за "отличненько поработал" :)))
Убрал.
Гм, уважаемый, а что у вас с демоном ntp?
---------------------------------------------
Fedora Core release 2
httpd-2.0.52-3.1asp
mysql-3.23.58
php-4.3.9-3
squid-2.5.STABLE6-2asp
samba 3.2.0
sams-1.0.3
samsredir
ip+ncsa (на это не надолго)
Отключил я его там, тестовый был сервак, двигал время чтобы проверить срабатывания нового периода.
Добаротал Пач
теперь при новой установке достаточно применить только данный пач и копирнуть Иконку
Поздравляю, ты на первом месте в гугле по запросу "трафик в кредит" :)
Абалдеть, спасибо, хоть рекламные места сдавай.