Страница 1 из 1

скрипт подсчёта по столбцу

Добавлено: 2007-11-09 15:34:42
Happy_demon
Доброе время!
Надо по простому отключать пользователей от инета при превышении лимита. СОВСЕМ по простому. Посмотрел на сквид-кэш, посмотрел на фрешмит. Решил, что надо ещё проще. Идея такая. Каждые 15 мин. запускается скрипт, подсчитывает траффик по каждому айпи, сравнивается сумма с лимитом. Если сумма превышена (не надо говорить, что сквид пишет после закачки файла в лог, мне это не принципиально)- заносит айпи пользователя в файл spec_client, передёргивает сквид. В сквиде есть acl, который гласит, что пользователи из файла spec_client никуда не могут ходить, только на несколько необходимых служебных сайтов. При заходе на другие сайты им будет выдана страничка - ВСЁ ИНЕТ КОНЧИЛСЯ, НЕ БОРЗЕЕМ!
Это преамбула. Теперь собственно вопрос. Посмотрел лог сквида, понял что первый столбец -время, второй - траф, третий -айпи. Чудно. Вот собственно как мне сложить сумму во втором столбце, но разумеется по каждому айпи? Дальше я думаю уже сам. Перл, авк, шелл - всё равно. Желательно чтобы это всё работало побыстрее (машинка слабенькая).
Ну если кто подобным заморачивался - будет интересно услышать мнение по поводу данной схемы, а уж если готовое решение - честь и хвала.
Заранее спасибо.

Re: скрипт подсчёта по столбцу

Добавлено: 2007-11-09 15:36:17
Alex Keda
посомтри в разделе про шелл, в скритах наструганных на коленке.
там выкладывал такое

Re: скрипт подсчёта по столбцу

Добавлено: 2007-11-12 12:53:52
idle
Например так:

Код: Выделить всё

grep айпи access.log|awk '{print$2}'|perl -e' while(<>){$summ+=$_};print$summ,"\n"'

Re: скрипт подсчёта по столбцу

Добавлено: 2007-11-18 21:12:06
serge
idle писал(а):Например так:

Код: Выделить всё

grep айпи access.log|awk '{print$2}'|perl -e' while(<>){$summ+=$_};print$summ,"\n"'
Может тогда на awk и сумму сразу сосчитать?? Или вызов перла быстрее :?