initial commit; version 22.5.12042
This commit is contained in:
58
includes/housekeeping/authlog.inc.php
Normal file
58
includes/housekeeping/authlog.inc.php
Normal file
@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Observium
|
||||
*
|
||||
* This file is part of Observium.
|
||||
*
|
||||
* @package observium
|
||||
* @subpackage housekeeping
|
||||
* @author Adam Armstrong <adama@observium.org>
|
||||
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2019 Observium Limited
|
||||
*
|
||||
*/
|
||||
|
||||
// Minimum allowed age for delete authlog entries times is 24h
|
||||
$cutoff = age_to_unixtime($config['housekeeping']['authlog']['age'], age_to_seconds('24h'));
|
||||
|
||||
if ($cutoff)
|
||||
{
|
||||
$where = "`datetime` < FROM_UNIXTIME($cutoff)";
|
||||
$count = dbFetchCell("SELECT COUNT(*) FROM `authlog` WHERE $where");
|
||||
if ($count)
|
||||
{
|
||||
if ($prompt)
|
||||
{
|
||||
$answer = print_prompt("$count authlog entries older than " . format_unixtime($cutoff) . " will be deleted");
|
||||
}
|
||||
|
||||
if ($answer)
|
||||
{
|
||||
$rows = dbDelete('authlog', "$where");
|
||||
if ($rows === FALSE)
|
||||
{
|
||||
// Use LIMIT with big tables
|
||||
print_debug("Authlog table is too big, using LIMIT for delete entries");
|
||||
$rows = 0;
|
||||
$i = 1000;
|
||||
while ($i && $rows < $count)
|
||||
{
|
||||
$iter = dbDelete('authlog', $where.' LIMIT 1000000');
|
||||
if ($iter === FALSE) { break; }
|
||||
$rows += $iter;
|
||||
$i--;
|
||||
}
|
||||
}
|
||||
print_debug("Authlog housekeeping: deleted $rows entries");
|
||||
logfile("housekeeping.log", "Authlog: deleted $rows entries older than " . format_unixtime($cutoff));
|
||||
}
|
||||
}
|
||||
else if ($prompt)
|
||||
{
|
||||
print_message("No authlog entries found older than " . format_unixtime($cutoff));
|
||||
}
|
||||
} else {
|
||||
print_message("Authlog housekeeping disabled in configuration or incorrectly configured to less than 24h.");
|
||||
}
|
||||
|
||||
// EOF
|
Reference in New Issue
Block a user