我应该如何轮换存储在 mysql 中的 rsyslog 文档

我应该如何轮换存储在 mysql 中的 rsyslog 文档

我已经设置 rsyslog 将 syslog 数据转储到 mysql,以便 LogAnalyzer 可以轻松访问并与其交互。

我如何自动执行一项作业来删除 mysql 数据库中一定年限的系统日志数据,以便它不会占满我的硬盘?

答案1

让 cronjob 每天执行一次如下查询:

 delete from syslogtable where timestampfield < subdate(curdate(), 31); 

这里,syslogtable是所讨论的表,timestampfield是包含日志条目日期的 DATE/TIME 字段,将删除超过 31 天的日志条目。请适应您的本地情况(数据库、表和字段名称以及保留日志条目所需的时间)。

答案2

@Sven 所说的正确语法:

mysql -u database-userid -pdatabase-password -e “DELETE FROM SystemEvents WHERE ReceivedAt < date_add(current_date, interval -1 day)” database-name

这个命令会删除一天前的数据。您可以根据自己的喜好与 crontab 一起使用。

相关内容