[sisyphus] sarg

Беляев В.Н. w_n_b на mail.ru
Вт Мар 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