--- loncom/debugging_tools/login_count.pl 2004/09/03 20:10:39 1.2 +++ loncom/debugging_tools/login_count.pl 2005/04/07 03:58:02 1.9 @@ -1,3 +1,29 @@ +# +# $Id: login_count.pl,v 1.9 2005/04/07 03:58:02 albertel Exp $ +# +# Copyright Michigan State University Board of Trustees +# +# This file is part of the LearningOnline Network with CAPA (LON-CAPA). +# +# LON-CAPA is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# LON-CAPA is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with LON-CAPA; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# /home/httpd/html/adm/gpl.txt +# +# http://www.lon-capa.org/ +# + use strict; use File::Find; use POSIX qw(strftime); @@ -6,8 +32,8 @@ use LONCAPA::Configuration; use Date::Manip; my $start_time=&UnixDate("Aug 30th 00:00:00 2004","%s"); -my @counts=('1','10','100','1000','10000','100000','250000'); - +my @counts=('1','10','100','1000','10000','100000','250000','1000000'); +my @ignored_users=('^itds\d+$'); sub only_user_activitylog_files { print (join("\n",@_)); @@ -16,16 +42,23 @@ sub only_user_activitylog_files { my %data; my $numusers; +my %machine; sub process_activitylog_file { if ($File::Find::dir=~m|/\d/\d/\d/|) { return; } if ($_ ne 'activity.log') { return; } open(FILE,"<$File::Find::name"); $numusers++; my $user=(split('/',$File::Find::dir))[-1]; + foreach my $expr (@ignored_users) { + if ($user=~/$expr/) { print("\nignoring $user\n"); return; } + } while (my $line=) { if ($line !~ /Login/) { next; } - my ($date)=split(':',$line,2); - if ($date > 1093838400) { push (@{$data{$date}},$user); } + my ($date,$machine)=split(':',$line,3); + if ($date > $start_time) { + push (@{$data{$date}},$user); + $machine{$machine}++; + } } if ($numusers%100 == 0) { print "\b\b\b\b\b\b\b\b\b\b\b\b\b\bDid $user"; @@ -41,7 +74,7 @@ sub print_data { $total_login+=scalar(@{$data{$key}}); my $day=strftime('%F',localtime($key)); $byday{$day}+=scalar(@{$data{$key}}); - while ($total_login >= $counts[0]) { + while ($counts[0] && $total_login >= $counts[0]) { print("The $counts[0] ($total_login) login was ". join(', ',@{$data{$key}})."\n"); shift(@counts); @@ -52,6 +85,10 @@ sub print_data { print("$key -> $byday{$key}\n"); } print("total -> $total_login\n"); + print("\nMachine Logins\n"); + foreach my $key (sort(keys(%machine))) { + print("$key \t-> $machine{$key}\n"); + } } $|=1;