在Ubuntu系统上设置syslog日志轮替与大小限制

安装和配置 logrotate

  1. 确认 logrotate 安装
    Ubuntu 系统通常默认安装了 logrotate。可以通过以下命令确认是否已安装:

    logrotate --version
  2. 编辑 logrotate 配置
    logrotate 的全局配置文件位于 /etc/logrotate.conf,而针对特定服务(如syslog)的配置则位于 /etc/logotate.d/ 目录下。对于 syslog 的配置,您需要编辑 /etc/logorate.d/rsyslog, 这是因为 Ubuntu 使用 rsyslog 作为其 syslog 实现。

  3. 打开 rsyslogs 日志轮替配置
    使用文本编辑器打开该文件进行编辑(例如使用 nano):

    sudo nano /etc/logorate.d/rsyslogs

设置日志大小限制

在该文件中设置以下参数来定义何时进行日志轮换以及保留多少历史记录:

  • size: 当前日志达到指定大小时触发轮换。
  • maxsize: 当前周期内如果达到指定最大尺寸则触发立即滚动。
  • minsize: 仅当至少达到指定尺寸且时间周期满足条件时才触发滚动。

例如:

/var/log/syslogs {
  size 100M 
  rotate 4 
}

这个例子表示当 syslog 文件增长到100MB时会被旋转,并且系统会保留最近4个旋转出来的备份。

设置其他相关选项

除了设置大小之外, 还可以定义其他行为:

  • compress: 转储后压缩旧版本。
  • missingok: 如果没有找到要处理的记录,则不报错继续下一个处理。
  • ‘daily’, ‘weekly’, ‘monthly’: 设置基于时间间隔进行自动转储。

例如:

/var/log/syslogs {
 size 100M 
 rotate 4 
 compress  
 missingok  
 weekly  
}

这将每周或者当超过100MB任一条件首先被满足时执行一次rotating,并压缩除最新外其它备份,并且如果某次没有找到要处理记录也不报错继续执行。

应用并测试更改

  1. 重新加载 rsyslogs 配置以应用更改:通过重启服务使更改生效:
sudo systemctl restart rsyslogger.service # 或使用老式命令 sudo service ryslogger restart.
  1. 测试你新设立规则是否正确: 可以手动运行 'loograte' 来确保你设立规则无误:
sudo loograte -d /path/to/config.conf # '-d' 参数表示调试模式, 不会真正执行而只是显示将要做哪些操作.
  1. 如果一切正常,则移除 -d, 执行真实操作检查结果:
sudo loograte /path/to/config.conf # 现在将实际应用变化.

确保检查相关目录看看是否按照预期创建、删除和压缩了相应文档。

posted @ 2025-10-12 11:15  u95900090  阅读(157)  评论(0)    收藏  举报