[LON-CAPA-cvs] cvs: loncom /debugging_tools user_login_count.pl
albertel
lon-capa-cvs@mail.lon-capa.org
Wed, 08 Sep 2004 19:42:09 -0000
albertel Wed Sep 8 15:42:09 2004 EDT
Added files:
/loncom/debugging_tools user_login_count.pl
Log:
- output number of login per user since a certain date
Index: loncom/debugging_tools/user_login_count.pl
+++ loncom/debugging_tools/user_login_count.pl
use strict;
use File::Find;
use POSIX qw(strftime);
use lib '/home/httpd/lib/perl/';
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');
sub only_user_activitylog_files {
print (join("\n",@_));
return 1;
}
my %data;
my $numusers;
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];
while (my $line=<FILE>) {
if ($line !~ /Login/) { next; }
my ($date)=split(':',$line,2);
if ($date > $start_time) { $data{$user}++; }
}
if ($numusers%100 == 0) {
print "\b\b\b\b\b\b\b\b\b\b\b\b\b\bDid $user";
}
}
sub print_data {
my $total_login=0;
my %byday;
print("\n");
my $i=0;
foreach my $key (sort {$data{$b} <=> $data{$a}} (keys(%data))) {
$i++;
print "$key -> $data{$key}\n";
if ($i>50) { last; }
}
}
$|=1;
sub main {
my $perlvar=LONCAPA::Configuration::read_conf('loncapa.conf');
find(
{
# preprocess => \&only_user_activitylog_files,
# wanted => \&print_filename,
# wanted => \&log_metadata,
wanted => \&process_activitylog_file,
},
$perlvar->{'lonUsersDir'}.'/'.$perlvar->{'lonDefDomain'});
&print_data();
}
&main();