From 743bb3a6ecd467abf8b6ada7655379391b966d29 Mon Sep 17 00:00:00 2001 From: Thomas Williams Date: Wed, 21 Aug 2024 13:34:04 +0100 Subject: [PATCH] Updated deletion of old logs --- log.py | 44 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/log.py b/log.py index d14cb5e..66236c8 100644 --- a/log.py +++ b/log.py @@ -77,7 +77,7 @@ class logsManager: currentAttempts = 1 self.insertHost(hostname, ipAddress) - self.deleteOldLogs("monutil_hostlogs", "logTime") + self.deleteOldLogs("hostlogs", "logTime", logRetentionDaysHost) while currentAttempts <= maximumSQLAttempts: @@ -183,7 +183,7 @@ class logsManager: currentAttempts = 1 self.insertHost(hostname, ipAddress) - self.deleteOldLogs("monutil_hostlogs", "logTime") + self.deleteOldLogs("iplogs", "logTime", logRetentionDaysIPBlock) while currentAttempts <= maximumSQLAttempts: @@ -279,7 +279,7 @@ class logsManager: currentAttempts = 1 self.insertHost(hostname, ipAddress) - self.deleteOldLogs("monutil_urlLogs", "logTime") + self.deleteOldLogs("urllogs", "logTime", logRetentionDaysURL) while currentAttempts <= maximumSQLAttempts: @@ -303,7 +303,7 @@ class logsManager: time.sleep(1) - def deleteOldLogs(self, tableName, logTimeColumn): + def deleteOldLogs(self, logType, logTimeColumn, logRetentionDays): currentAttempts = 1 @@ -311,6 +311,13 @@ class logsManager: try: + if logType == 'hostlogs': + tableName = 'monutil_hostLogs' + elif logType == 'urllogs': + tableName = 'monutil_urlLogs' + elif logType == 'iplogs': + tableName == 'monutil_ipblock' + conn = pyodbc.connect(self.conn_str) cursor = conn.cursor() @@ -329,9 +336,32 @@ class logsManager: if cursor.rowcount > 0 and oldestLogTime < datetime.now() - timedelta(days=int(logRetentionDays)): - deleteQuery = f"DELETE FROM {tableName} WHERE {logTimeColumn} < ?" - cursor.execute(deleteQuery, datetime.now() - timedelta(days=int(logRetentionDays))) - conn.commit() + if logType == 'hostlogs': + + deleteQuery = f"DELETE FROM {tableName} WHERE {logTimeColumn} < ?" + + cursor.execute(deleteQuery, datetime.now() - timedelta(days=int(logRetentionDaysHost))) + conn.commit() + + elif logType == 'urllogs': + + deleteQuery = f"DELETE FROM {tableName} WHERE {logTimeColumn} < ?" + + cursor.execute(deleteQuery, datetime.now() - timedelta(days=int(logRetentionDaysURL))) + conn.commit() + + elif logType == 'iplogs': + + deleteQuery = f"DELETE FROM monutil_geoip WHERE logID IN ( + SELECT logID FROM monutil_ipblock WHERE {logTimeColumn} < ?)" + + cursor.execute(deleteQuery, datetime.now() - timedelta(days=int(logRetentionDaysIPBlock))) + conn.commit() + + deleteQuery = f"DELETE FROM monutil_ipblock WHERE {logTimeColumn} < ?" + + cursor.execute(deleteQuery, datetime.now() - timedelta(days=int(logRetentionDaysIPBlock))) + conn.commit() break