当前位置: 首页 > news >正文

在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 # 现在将实际应用变化.

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

http://www.hskmm.com/?act=detail&tid=29179

相关文章:

  • 从 “有人值守” 到 “少人运维”:智能巡检机器人重塑配电室管理模式 - 实践
  • 2025年10月最新推荐卫星电话品牌发布,涵防爆对讲卫星电话,卫星电话应急指挥系统,卫星电话防爆对讲终端,防爆手持卫星电话!
  • 很早就想注册博客园了
  • [KaibaMath]1006 关于∀ε0, |a-b|λε(λ0) = a=b的证明
  • dataset类
  • 【PolarCTF】nc
  • [ARC081E] Dont Be a Subsequence 题目分析
  • AI代理从概念验证到生产部署全流程
  • Azure Arc C2即服务:攻击与防御实战指南
  • CPU中的加法运算与减法运算
  • macos单独打开模拟器simulator
  • 子序列自动机学习笔记
  • 2018牛客网暑期ACM多校训练营(第一场)
  • 20232311 2025-2026-1 《网络与系统攻防技术》实验一实验报告
  • 你的认知模式,决定了你的人生高度
  • 在Typora中数学公式无法显示问题
  • 洛谷个人主页
  • 原码、反码、补码
  • C++ - 从字符串中提取一个数的若干种写法
  • ABC 日志
  • 251012
  • 如何在UE中创建动态枚举
  • 能连上 GitHub(SSH 验证成功),却 push 失败?常见原因与逐步解决方案 - 详解
  • 换根dp的一个trick
  • 搭建SSH服务于RK3399平台上的Ubuntu 18.04,实现远程连接
  • 深入探讨MySQL的二进制日志(binlog)选项
  • sparkml 多列共享labelEncoder - 详解
  • 一键解决MetaHuman播放动画时头部穿模问题
  • 忽然很好奇为什么素未谋面的大家都知道我是学姐?
  • UE网络编程完全指南:UDP TCP WebSocket实现详解