LINUX.ORG.RU
ФорумAdmin

блокировки Squid


0

0

Доброго времени суток

есть сквид (с авторизацией по логин/пароль). Есть определенные лимиты для каждого пользователя. Лог разбирается скриптом на перле и пихается в mysql. Перебравшие свой лимит пользователи добавляются в файл ../blockeduser. Пока блокировка (добавление в blockeduser) вручную. А как сделать так, чтоб все происходило на автомате по кронду? Если точнее, то в заданное время скрипт загоняет данные из access.log в mysql, потом идет сравнение с выделенными лимитами и перебравших записывает в blockeduser.

И еще вопросик. Как на перле превратить "http://чегототам.домен/какаятостраничка/чегототамеще" в "http://чегототам.домен/ ? Вообщем оставить только доменнное имя и убрать все остальное содержимое?

★★★

1) Скрипт должен при запуске читать БД о том, сколько накачали на данный момент user-ы, а также об их limit-ах. Потом при чтении squid-ового log-а должен увеличивать данные об объеме и постоянно сравнивать с limit-ом. Если limit достигнут или превышен, загонять user-а в файл blockeduser, и делать squid -k reconfigure. Таким образом squid моментально отрубит этого user-а (на остальных это никак не скажется).
P.S. У меня пока что как раз так и работает :-)

2) Например так:
perl -e '$a="http://ya.ru/dir1/dir2/file.html";;$a=~s|(^http://)([^/]*/).*|\1\2 |;print "$a\n"'

spirit ★★★★★
()
Ответ на: комментарий от spirit

Насчет принципа работы я понял (в принципе я и думал что так оно и должно работать). Просто я не очень силен в перле. Поэтому вопросы больше с точки написания скрипта. Не выходит пока у меня этот скриптик:( Не могу сообразить как именно сравнивать лимит с трафиком и трафиком и перебравших пихать в blockeduser.

deys ★★★
() автор топика
Ответ на: комментарий от deys

Могу дать то, что сейчас пока работает у меня. На идеальность не претендую, а так, для "посмотреть", думаю сойдет :-) Давай e-mail - вышлю.
Если в кратце, то есть список user-ов с их limit-ами, скрипт при запуске читает этот список и запоминает, также он читает объемы, скачанные пользователями и тоже запоминает. Потом, по мере пользования user-ами squid-а, их объемы увеличиваются. Скрипт это дело постоянно конролирует и при превышении limit-а сразу заносит в черный список и перезапускает squid. А контролирует это благодаря бесконечному чтению log-а squid-а: открываем access.log и, пока не конец, читаем, когда конец (eof(LOG) ) засыпаем на некотрое время, просыпаемся и смотрим, если уже не конец - читаем до конца и т.д.

spirit ★★★★★
()
Ответ на: комментарий от deys

Если можно то и мне заодно на sb (@) vluki.ru

Заранее спасибо. С Уважением Tezzz.

Tezzz
()
Ответ на: комментарий от spirit

а можно тогда и сюда-- berrywizard/gmail.com ? если есть нужда/желание/непротивление, могу выложить, чтобы не спамить.

berrywizard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.