|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Master Yoda 2:5020/400 13 Nov 2002 23:56:26 To : Dmitriy Kamyshov Subject : Re: ? count traffic -------------------------------------------------------------------------------- Hello, Dmitriy! You wrote to All on Wed, 13 Nov 2002 12:16:54 +0300: DK> Кто чем пользуется для учета/раздачи и-нета на контору? Hужно так DK> чтобы каждому по логину/паролю в DK> месяц выдавать определенное кол-во мегабайт. И чтобы юзер мог зайти на DK> страничку и посмотреть скоко у DK> него еще осталось, экономить или нет. В программинге под линухом я мало DK> соображаю, так, чтобы самому DK> написать. Hужно что-то готовое. У меня тоже такая проблема есть. Так что если найдешь решение - кинь его в эту эху, плз. Как временное решение для себя написал небольшой скрипт на перле для анализа логов Сквида. Скрипт надо запускать так: cat access.log | ./counter.pl <login> Вот время от времени запускаю этот скрипт для каждого юзера и, если много закачано, закрываю ему вход (закомментариваю логин в файле паролей). #!/usr/bin/perl # </opt/squid/var/logs/counter.pl> #Использование скрипта: # cat access.log | ./counter.pl <login> # где <login> - имя пользователя сквида $login="@ARGV[0]"; `>counter.txt`; open FF, ">> ./counter.txt"; $s=0; while (<STDIN>) { if ($.==1 and (m@^(\d+)\..+$@) ) {print "Hачало лога: ".localtime($1)."\n";} if (m@^.+?/.+? (\d+?) .+ $login .+$@) {print FF "$_"; $s+=$1;} $last_string = $_; } if ($last_string=~m@^(\d+)\..+$@) {print "Конец лога: ".localtime($1)."\n";} close FF; print "$s bytes loaded by $login\n"; Скрипт так-же пишет в файл "counter.txt" строки с запросами того пользователя, для которого велся подсчет. Доработать данный скрипт, чтобы все делал на автомате - как-то времени нету :( With best regards. --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/5188890d82790.html, оценка из 5, голосов 10
|