mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 01:54:22 +00:00

git-svn-id: http://scm.dspace.org/svn/repo/trunk@1190 9c30dcfa-912a-0410-8fc2-9e0234be79fd
156 lines
5.3 KiB
Perl
156 lines
5.3 KiB
Perl
#!/usr/bin/env perl
|
|
|
|
###########################################################################
|
|
#
|
|
# stat-initial
|
|
#
|
|
# Author: Richard Jones
|
|
# Created On: 25/02/2005
|
|
#
|
|
# Copyright (c) 2002, Hewlett-Packard Company and Massachusetts
|
|
# Institute of Technology. All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions are
|
|
# met:
|
|
#
|
|
# - Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
#
|
|
# - Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in the
|
|
# documentation and/or other materials provided with the distribution.
|
|
#
|
|
# - Neither the name of the Hewlett-Packard Company nor the name of the
|
|
# Massachusetts Institute of Technology nor the names of their
|
|
# contributors may be used to endorse or promote products derived from
|
|
# this software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
# HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
|
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
|
# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
|
# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
|
|
# DAMAGE.
|
|
###########################################################################
|
|
|
|
###########################################################################
|
|
# This script starts from the year and month specified below and works
|
|
# forward until the end of the current month, generating monthly aggregation
|
|
# files for the DStat system.
|
|
#
|
|
# To customise for your own use change the $out_prefix, $out_suffix,
|
|
# $start_year, $start_month, $dsrun and $out_directory variables below.
|
|
#
|
|
# If you wish to futher configure this script, you will need to edit the
|
|
# command being executed, which appears near the bottom of the page, and is
|
|
# commented with "# The command to generate the report"
|
|
#
|
|
# For more information on using the LogAnalyser, use:
|
|
#
|
|
# [dspace]/bin/dsrun org.dspace.app.statistics.LogAnalyser -help
|
|
###########################################################################
|
|
|
|
use POSIX qw(floor);
|
|
|
|
my $start;
|
|
my $end;
|
|
my $out;
|
|
my $i;
|
|
my $no_months;
|
|
my $second;
|
|
my $minute;
|
|
my $hour;
|
|
my $day;
|
|
my $month;
|
|
my $year;
|
|
my $week_day;
|
|
my $day_of_year;
|
|
my $is_dst;
|
|
my $out_prefix;
|
|
my $out_suffix;
|
|
|
|
# Details used
|
|
################################################
|
|
|
|
$out_prefix = "dspace-log-monthly-";
|
|
$out_suffix = ".dat";
|
|
$start_year = "2005";
|
|
$start_month = "1";
|
|
$dsrun = "/dspace/bin/dsrun";
|
|
$out_directory = "/dspace/log/";
|
|
|
|
################################################
|
|
|
|
# Get the all the values for current time
|
|
($second, $minute, $hour, $day, $month, $year, $week_day, $day_of_year, $is_dst) = localtime(time);
|
|
|
|
# set up the variables to use in the loop
|
|
|
|
# number of years after the current year (will mostly be negative)
|
|
# <current year> = (<perl year> + 1900)
|
|
# <start year offset> = <start year> - <current year>
|
|
$year_offset = $start_year - ($year + 1900);
|
|
|
|
# total number of months between now and the start date (negated to be positive in general)
|
|
# <months in year offset> = |<start year offset>| * 12
|
|
# <difference in current year months> = (<current perl month> + 1) - <start month>
|
|
# <total number of months> = <months in year offset> + <difference in current year months>
|
|
# we use -1 to make <start year offset> positive since it should always be negative
|
|
$no_months = (-1 * ($year_offset * 12)) + (($month + 1) - $start_month);
|
|
|
|
# start day of every month
|
|
$start_day = "01";
|
|
|
|
# for every month ...
|
|
for ($i = 0; $i < $no_months; $i++)
|
|
{
|
|
# the month of the year (horrid modular maths)
|
|
$this_month = (($start_month + $i - 1) % 12) + 1;
|
|
|
|
# number of years gone through since we started the loop
|
|
$year_count = floor(($i + $start_month - 1) / 12);
|
|
|
|
# the year of the current analysis period
|
|
$this_year = $year + $year_offset + $year_count + 1900;
|
|
|
|
# set the end day for the processing
|
|
if ($this_month == 1 || $this_month == 3 || $this_month == 5 || $this_month == 7 || $this_month == 8 || $this_month == 10 || $this_month == 12)
|
|
{
|
|
$end_day = "31";
|
|
}
|
|
elsif ($this_month == 4 || $this_month == 6 || $this_month == 9 || $this_month == 11)
|
|
{
|
|
$end_day = "30";
|
|
}
|
|
else
|
|
{
|
|
if (($year % 4) != 0)
|
|
{
|
|
$end_day = "28";
|
|
}
|
|
else
|
|
{
|
|
$end_day = "29";
|
|
}
|
|
}
|
|
|
|
# generate the date string
|
|
$start = $this_year . "-" . $this_month . "-" . $start_day;
|
|
$end = $this_year . "-" . $this_month . "-" . $end_day;
|
|
|
|
$out = $out_directory . $out_prefix . $this_year . "-" . $this_month . $out_suffix;
|
|
|
|
# The command to generate the report
|
|
$execute = "$dsrun org.dspace.app.statistics.LogAnalyser -start $start -end $end -out $out";
|
|
|
|
system($execute);
|
|
}
|
|
|
|
exit(1); |