zoneminder/scripts/zmstats.pl.in

94 lines
2.8 KiB
Perl
Raw Normal View History

#!@PERL_EXECUTABLE@ -wT
2018-01-11 02:35:10 +08:00
use strict;
use bytes;
# ==========================================================================
#
# These are the elements you can edit to suit your installation
#
# ==========================================================================
use constant START_DELAY => 30; # To give everything else time to start
# ==========================================================================
#
# Don't change anything below here
#
# ==========================================================================
@EXTRA_PERL_LIB@
use ZoneMinder;
use DBI;
$| = 1;
$ENV{PATH} = '/bin:/usr/bin:/usr/local/bin';
$ENV{SHELL} = '/bin/sh' if exists $ENV{SHELL};
delete @ENV{qw(IFS CDPATH ENV BASH_ENV)};
logInit();
logSetSignal();
2019-03-01 23:26:55 +08:00
Info('Stats Daemon starting in '.START_DELAY.' seconds');
sleep(START_DELAY);
2018-01-11 02:35:10 +08:00
my $dbh = zmDbConnect();
while( 1 ) {
while ( ! ( $dbh and $dbh->ping() ) ) {
2019-03-01 23:26:55 +08:00
Info('Reconnecting to db');
if ( !($dbh = zmDbConnect()) ) {
2018-09-08 04:30:47 +08:00
#What we do here is not that important, so just skip this interval
sleep($Config{ZM_STATS_UPDATE_INTERVAL});
}
}
2018-01-11 02:35:10 +08:00
2018-02-19 00:29:15 +08:00
$dbh->do('DELETE FROM Events_Hour WHERE StartTime < DATE_SUB(NOW(), INTERVAL 1 hour)') or Error($dbh->errstr());
$dbh->do('DELETE FROM Events_Day WHERE StartTime < DATE_SUB(NOW(), INTERVAL 1 day)') or Error($dbh->errstr());
$dbh->do('DELETE FROM Events_Week WHERE StartTime < DATE_SUB(NOW(), INTERVAL 1 week)') or Error($dbh->errstr());
$dbh->do('DELETE FROM Events_Month WHERE StartTime < DATE_SUB(NOW(), INTERVAL 1 month)') or Error($dbh->errstr());
2018-01-11 02:35:10 +08:00
2018-09-08 04:30:47 +08:00
sleep($Config{ZM_STATS_UPDATE_INTERVAL});
2018-01-11 02:35:10 +08:00
} # end while (1)
2019-03-01 23:26:55 +08:00
Info('Stats Daemon exiting');
2018-01-11 02:35:10 +08:00
exit();
1;
__END__
#
# ==========================================================================
#
# ZoneMinder WatchDog Script, $Date$, $Revision$
# Copyright (C) 2001-2008 Philip Coombes
#
# This program 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.
#
# This program 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 this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
#
# ==========================================================================
=head1 NAME
zmstats.pl - ZoneMinder Stats Updating Script
=head1 SYNOPSIS
zmstats.pl
=head1 DESCRIPTION
This does background updating various stats in the db like event counts, diskspace, etc.
=cut