diff options
| author | Simon Rettberg | 2018-02-09 12:12:31 +0100 |
|---|---|---|
| committer | Simon Rettberg | 2018-02-09 12:12:31 +0100 |
| commit | d57ee1cfdd99fb4e44f5ce6d92d6712c30ff0aa4 (patch) | |
| tree | c1030efbdb837f53651272e015a3ab5562f145c8 /modules-available/syslog/hooks | |
| parent | [systemstatus] lang-descriptions for permissions (diff) | |
| parent | [inc/User] Add locationid 0 to allowed locations in fallback mode (diff) | |
| download | slx-admin-d57ee1cfdd99fb4e44f5ce6d92d6712c30ff0aa4.tar.gz slx-admin-d57ee1cfdd99fb4e44f5ce6d92d6712c30ff0aa4.tar.xz slx-admin-d57ee1cfdd99fb4e44f5ce6d92d6712c30ff0aa4.zip | |
Merge branch 'master' into permission-manager
Diffstat (limited to 'modules-available/syslog/hooks')
| -rw-r--r-- | modules-available/syslog/hooks/cron.inc.php | 21 | ||||
| -rw-r--r-- | modules-available/syslog/hooks/statistics/machine-replace.inc.php | 5 |
2 files changed, 26 insertions, 0 deletions
diff --git a/modules-available/syslog/hooks/cron.inc.php b/modules-available/syslog/hooks/cron.inc.php index bae882a9..62516648 100644 --- a/modules-available/syslog/hooks/cron.inc.php +++ b/modules-available/syslog/hooks/cron.inc.php @@ -1,7 +1,28 @@ <?php if (mt_rand(1, 10) === 1) { + // Prune old entries Database::exec("DELETE FROM clientlog WHERE (UNIX_TIMESTAMP() - 86400 * 190) > dateline"); + // Anonymize if requested + $days = Property::get('syslog.anon-days', 0); + if ($days > 0) { + $cutoff = time() - ($days * 86400); + Database::exec("UPDATE clientlog SET description = '[root] User logged in' + WHERE $cutoff > dateline AND logtypeid = 'session-open' AND description NOT LIKE '[root] User %'"); + Database::exec("UPDATE clientlog SET description = '[root] User logged out' + WHERE $cutoff > dateline AND logtypeid = 'session-close' AND description NOT LIKE '[root] User %'"); + Database::exec("UPDATE clientlog SET description = '-', extra = '' + WHERE $cutoff > dateline AND description NOT LIKE '-' + AND logtypeid NOT IN ('session-open', 'session-close', 'idleaction-busy', 'partition-temp', + 'partition-swap', 'smartctl-realloc', 'vmware-netifup', 'vmware-insmod', 'firewall-script-apply', + 'mount-vm-tmp-fail')"); + if (Module::get('statistics') !== false) { + Database::exec("UPDATE statistic SET username = 'anonymous' + WHERE $cutoff > dateline AND username NOT LIKE 'anonymous' AND username NOT LIKE ''"); + Database::exec("UPDATE machine SET currentuser = NULL + WHERE $cutoff > lastseen AND currentuser IS NOT NULL"); + } + } if (mt_rand(1, 100) === 1) { Database::exec("OPTIMIZE TABLE clientlog"); } diff --git a/modules-available/syslog/hooks/statistics/machine-replace.inc.php b/modules-available/syslog/hooks/statistics/machine-replace.inc.php new file mode 100644 index 00000000..6be0dd76 --- /dev/null +++ b/modules-available/syslog/hooks/statistics/machine-replace.inc.php @@ -0,0 +1,5 @@ +<?php + +foreach ($list as $entry) { + Database::exec('UPDATE IGNORE clientlog SET machineuuid = :new WHERE machineuuid = :old AND dateline < :datelimit', $entry); +} |
