НАШИ СКРИПТЫ: ПОДСЧЕТ ТРАФИКА НА ISA2006

Логи файлов ISA сервера 2000, 2006 хранятся в текстовом формате .w3c

По прошествии месяца, всех волнует вопрос: «А кто сколько скачал? Сколько всего трафика скачали?». Тут есть что ответить:

Тестовые логи за месяц весят в среднем 5GB, на обработку и подсчет, на моем компе уходит 20-25минут (комп у меня не самый мощный, в основном грузит проц, у меня он – 1.8GHz). Итак, представляю исходники скрипта:

<pre>cat ISALOG_200908*_WEB_000.w3c | awk '
BEGIN {
FS="\t";
OFS="\t"
}
{
 if ($0 !~ /^#/) {
  datetime = $fieldsin["date"] " " $fieldsin["time"];
  if ((mindatetime)=="" || (mindatetime)>datetime) {
   mindatetime = datetime
   }
  if ((maxdatetime)=="" || (maxdatetime)<datetime) {
   maxdatetime = datetime
   }
  if (($fieldsin["action"]=="Allowed") || ($fieldsin["action"]=="Failed")) {
   username=tolower($fieldsin["cs-username"]);
   userdomain = (match(username,/^[^\\]*\\/)) ? substr(username,1,RLENGTH) : "<NONE>";
   users[username] = username;
   domains[userdomain]=userdomain;
   user_cs[username]+=$fieldsin["cs-bytes"];
   domain_cs[userdomain]+=$fieldsin["cs-bytes"];
   total_cs += $fieldsin["cs-bytes"];
   user_sc[username]+=$fieldsin["sc-bytes"];
   domain_sc[userdomain]+=$fieldsin["sc-bytes"];
   total_sc+=$fieldsin["sc-bytes"]
   }
  }
   else {
    if (match($0,/^#Fields:\ +/)) {
     split(substr($0,RLENGTH+1),fields);
     for(fldin in fields) {
      fieldsin[fields[fldin]]=fldin
      }
     }
       }
}
END {
print "# ISA statistics from " mindatetime " to " maxdatetime;
print "# cs-bytes", "sc-bytes";
print "\n# Users statistics";
asorti(users);
for(userid=1; userid<=length(users); userid++) {
 user = users[userid];
 print user, user_cs[user], user_sc[user]
 }
print "\n# Domains statistics";
asorti(domains);
for(domainid=1; domainid<=length(domains); domainid++) {
 domain = domains[domainid];
 print domain, domain_cs[domain], domain_sc[domain]
 }
print "\n# Grand total summary";
print total_cs,total_sc
}' > isa_web_rep_200908.txt</pre>

Чтобы использовать на Windows PC, нужно установить cygwin. В наших статьях есть описание установки.

Related posts:

  1. НАШИ СКРИПТЫ: DHCP LINUX Скрипт dhcp.pl используется для передачи опции DHCP ‘classless static routes’...
  2. Microsoft ISA Server 2006 + Cygwin. Оригинальный способ биллинга. Приветствую! Сегодня мы рассмотрим один из вариантов снятия статистики интернет...
You can leave a response, or trackback from your own site.

Оставить комментарий

*