[sisyphus] sarg
Беляев В.Н.
=?iso-8859-1?q?w=5Fn=5Fb_=CE=C1_mail=2Eru?=
Вт Мар 6 12:38:48 MSK 2007
Hello Dmitriy,
Tuesday, March 6, 2007, 2:18:43 PM, you wrote:
DLK> На календаре было: Вторник, 06 Март 2007 года,
DLK> Беляев В.Н. писал(а) в сообщении:
DLK> == Беляев В.Н.
>> Создает после небольшого напильника. Также возможна автоматическая
>> блокировка превысивших лимит.
DLK> Напильник в студию...
DLK> Студия у нас на wiki :)
Скрипт блокирования за месяц:
-------------------------------------------
#!/usr/bin/perl
#
use File::Basename;
push (@INC,(fileparse($0))[1]);
require "lightsquid.cfg";
require "common.pl";
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime;
$year=sprintf("%02d",$year+1900);
$month=sprintf("%02d",$mon+1);
$filter="$year$month";
@daylist=glob("$reportpath/$filter*");
foreach $daypath (sort @daylist) {
open FF,"<$daypath/.total";
# GetRealName($daypath,"?"); # init realname for day
while (<FF>) {
($user,$size,$hit)=split;
$h{$user}{size}+=$size;
$h{$user}{hit}+=$hit;
}
close FF;
}
open FF,"</usr/local/squid/limit";
while (<FF>) {
($user,$limit)=split;
$tt{$user}{limit}=$limit;
}
close FF;
open FF,">","/usr/local/squid/blocked_users";
foreach $user (sort {$h{$b}{size}<=>$h{$a}{size}} keys %h) {
print FF ("$user\n") if ($h{$user}{size} > $tt{$user}{limit});
}
close FF;
exec '/usr/local/squid/sbin/squid -k reconfigure'
--------------------------------------------------------------------
Запускается каждые 20 минут.
/usr/local/squid/limit
файл с именем и лимитом трафика
В сквиде есть ACL
acl bl_users proxy_auth_regex -i '/usr/local/squid/blocked_users'
http_access deny bl_users
DLK> --
DLK> Best regards,
DLK> Dmitriy L. Kruglikov .--.
DLK> Dmitriy.Kruglikov_at_gmail_dot_com |@_@ |
DLK> DKR6-RIPE |!_/ |
DLK> XMPP:dkr6 на jabber.ru // \ \
DLK> (| | )
DLK> /'\_ _/`\
DLK> Powered by Linux \___)=(___/
DLK> -- Мысль --
DLK> Не пренебрегай маленькими людьми: они могут помочь тебе возвыситься.
DLK> -- Абуль-Фарадж
--
С уважением, Беляев
ICQ: 119181289
Подробная информация о списке рассылки Sisyphus