Вход для пользователей

Частые reconfigure & restart SQUID...

Проблема в следующем.
Обработка лога сквида стартует каждую минуту по cron-у,
и если за этот период обнаружится несколько пользователей, которые превысили лимит,
то samsdaemon делает несколько рестартов сквида (на каждый отключенный пользователь).
Сквид за это время не успевает сделать первый рестарт, как тут же получает команду на следующий...

В результате имеем (cache.log):
aclParseAclLine: WARNING: empty ACL: acl _sams_default src "/usr/local/etc/squid/default.sams"
strtokFile: /usr/local/etc/squid/4696194f27945.sams not found
и т.д., и пользователи работать не могут.

Пример фрагмента из журнала событий:
2008-04-01 14:34:02 sams Disable user 10.102.17.12 traffic 68400388>52428800
2008-04-01 14:34:02 samsdaemon Send message to admin. script /usr/local/share/sams/src/scri
2008-04-01 14:34:02 samsdaemon Reading request to reconfigure SQUID
2008-04-01 14:34:02 sams Disable user romaniyv traffic 55044178>52428800
2008-04-01 14:34:02 samsdaemon Send message to admin. script /usr/local/share/sams/src/scri
2008-04-01 14:34:04 samsdaemon Reconfigure & restart SQUID... Ok
2008-04-01 14:34:04 samsdaemon Reading request to reconfigure SQUID
2008-04-01 14:34:08 samsdaemon Reconfigure & restart SQUID... Ok

Вопрос: можно ли сделать так, чтобы sams (при необходимости) давал команду на рестарт после обработки всего фрагмента лога, а не на каждого пользователя?

FreeBSD 6.2-RELEASE-p5 amd64
apache-2.2.8
mysql-5.0.51a
php5-5.2.5_1
squid-2.6.18
samba-3.0.28,1
sams-devel, r177
редиректор - не используется
тип авторизации - ntlm+ip

Возникла аналогичная проблема... Только еще пропал файл nsca.sams и squid вывалился с ошибкой авторизации. Пользователей на данный момент было 8

ОС- МОПС 5.1,
SQUID-2.6.STABLE6-CVS-AVP
sams - 1.0.0, тип авторизации - ncsa,
редиректор - цепочка sams - rejik3

Вопрос по теме: на что влияет опция
"Проверять наличие команды на реконфигурирование squid каждые n секунд"
в настройках samsdaemon?

samsdaemon каждые n секунд делает запрос в таблицу и смотрит, нет ли там каких-либо команд для него
вот именно на этот интервал и влияет указанная опция

Спасибо, уже и сам разобрался.
Проблема с частыми перезапусками сквида решается правильным подбором значения
SLEEP (опция "Проверять наличие команды на реконфигурирование squid каждые n секунд").

какое значение в вашем случае оказалось правильным?

20 < n < 60

В нормальном режиме samsdaemon проработал больше недели (с 07.04.2008) с значением SLEEP равным 40 секунд.
Сегодня проблема "вернулась" :(

Фрагмент журнала событий:
2008-04-15 14:10:04 sams Disable user 10.14.37.39 traffic 52431533>52428800
2008-04-15 14:10:04 samsdaemon Send message to admin. script /usr/local/share/sams/src/scri
2008-04-15 14:10:06 samsdaemon Reading request to reconfigure SQUID
2008-04-15 14:10:06 sams Disable user 10.14.53.46 traffic 52432844>52428800
2008-04-15 14:10:06 samsdaemon Send message to admin. script /usr/local/share/sams/src/scri
2008-04-15 14:10:15 samsdaemon Reconfigure & restart SQUID... Ok
2008-04-15 14:10:15 samsdaemon Reading request to reconfigure SQUID
2008-04-15 14:10:19 samsdaemon Reconfigure & restart SQUID... Ok

Как такое возможно?
Не срабатывает sleep(SLEEP) в samsdaemon.c?

see up

Такая же проблема. Версия SAMS oт 2005-11-07.
После копания в daemon.c выяснил такую штуку:
В структуре users задано два элемента enabled и disabled. Значение для enabled берется из базы mysql и соответственно отвечает, как я понимаю, за статус пользователя, отключен он или нет. А вот значение disabled задается в самой программе и по умолчанию выставляется в ноль в функции LoadUsersData:
80: users[i].disabled=0;
Далее в программе идет проверка на превышение пользователем квоты:
287: if(users[samsuser-1].size>=users[samsuser-1].quote)
затем стоит проверка на блокировку пользователя и делается она по полю users.disabled:
289:: if(users[samsuser-1].disabled==0)
У меня есть такое подозрение, что проверку все же надо делать по users.enabled.
Я не программист, поэтому вполне возможно мое предположение неверно. Может всё-таки Дмитрий как разработчик или кто из знающих прокомментирует?

К концу месяца отключенных пользователей становится много, sams начинает реконфигурить squid каждые несколько (1-5) минут. Есть какие-нибудь идеи?