-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathusage.pl
More file actions
executable file
·61 lines (56 loc) · 1.63 KB
/
usage.pl
File metadata and controls
executable file
·61 lines (56 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!/usr/bin/perl -w
use strict;
use feature ':5.10';
# change to logfile on your system
# or start from command line .. usersperday.pl logfilename
my $logfile = $ARGV[0] || "jamulus.log";
my $title = uc $logfile;
#***************************************************************
my @connections = `grep connected $logfile | sed 's/,/ /g' | cut -d \" \" -f1`;
my @hours = `grep connected $logfile | cut -d \" \" -f2 | cut -d : -f1 | sort`;
# How many users, for how many days
my $users = `cut -d , -f2 $logfile | sort | uniq | wc -l`;
my $days = `cut -d , -f1 $logfile | cut -d " " -f1 $logfile |sort | uniq | wc -l`;
chomp $users;
chomp $days;
my $avg = $users/$days;
say "-" x 40;
say " -- $title -- Jamulus Usage -- ";
chomp $connections[0];
chomp $connections[-1];
say " -- $connections[0] -- $connections[-1] --";
say "-" x 40;
print "\n";
# ************************** Daily Usage *****************************
# hash to acculmulate number of not necessarily unique connections per day
my %dates;
say "Date Visitors";
foreach (@connections){
chomp;
$dates{$_}++;
}
foreach my $day(sort keys %dates){
say "$day $dates{$day}";
}
# ************************** Hourly Usage *****************
print "\n";
say "-" x 20;
print "\n";
say "Hour Visitors";
my %hourly;
foreach (@hours){
chomp;
$hourly{$_}++;
}
foreach my $hour( sort keys %hourly){
# add a , beteen fields for quick cvs import
say"$hour:00 $hourly{$hour}";
}
# ************************** Totals **********
print "\n";
say "-" x 42;
say "You have had $users unique visitors in $days days";
print "An average of ";
printf("%.1f", $avg);
say " visitors per day";
say "-" x 42;