游乐游手机版
首页/系统平台/文章详情

Ubuntu系统如何修改日志清理保留天数设置

时间:2026-08-18 07:47
journalctl 日志保留规则主要由 etc systemd journald conf 中的 SystemMaxUse 与 MaxRetentionSec 共同决定,修改后通常需要重启 systemd-journald 才会生效;logrotate 通过 rotate 参数控制文本日志的保留

journalctl 日志保留规则主要由 /etc/systemd/journald.conf 中的 SystemMaxUse 与 MaxRetentionSec 共同决定,修改后通常需要重启 systemd-journald 才会生效;logrotate 通过 rotate 参数控制文本日志的保留份数,并不是直接按保留天数设置;Ja va 应用日志则应在日志框架配置中通过 maxHistory 等参数进行管理,例如 logback。

Ubuntu如何修改日志清理保留天数

journalctl 默认保留策略在哪改

systemd journal 日志的默认保留策略并不是写死在系统里,而是主要通过 /etc/systemd/journald.conf 中的两个关键参数控制:SystemMaxUseMaxRetentionSec。修改完成后,需要重启 journald 服务,新的日志保留配置才会正式生效。

很多人在 Ubuntu 修改日志清理保留天数时,常误以为只设置 MaxRetentionSec 就足够了。实际上,它更像是一个“时间上限”,真正影响清理行为的往往是磁盘空间限制(SystemMaxUse)与该参数的组合。若磁盘空间一直充足,MaxRetentionSec 可能不会立即触发旧日志删除。

  • 打开配置:sudo nano /etc/systemd/journald.conf
  • 取消注释并修改这两行(例如保留 14 天):
    SystemMaxUse=500M
    MaxRetentionSec=14d
  • 重启服务:sudo systemctl restart systemd-journald
  • 验证是否加载:sudo systemctl show --property=SystemMaxUse,MaxRetentionSec systemd-journald

logrotate 的保留天数怎么调

logrotate 主要用于管理传统的文本日志文件,例如 /var/log/syslog/var/log/auth.log 等 syslog 日志。它的保留时间并不是直接通过“多少天”来精确控制,而是依靠配置中的 rotate 参数决定保留多少个归档文件。比如,rotate 7 表示最多保留 7 份归档;如果日志通常每天轮转一次,那么基本可以理解为大约保留 7 天日志。

如果想调整 Ubuntu 日志保留天数,可以直接修改 /etc/logrotate.d/rsyslog 或目标服务对应的 logrotate 配置文件。但要特别注意,轮转周期(daily/weekly)必须与 rotate 的数值搭配合理,否则就可能出现日志保留时间过短,甚至提前丢失历史日志的问题。

  • 编辑配置:sudo nano /etc/logrotate.d/rsyslog
  • 找到类似这一段,把 rotate 4 改成需要的保留份数:
    /var/log/syslog {
    rotate 14
    daily
    compress
    missingok
    create 640 root adm
    }
  • 立即生效:sudo logrotate -f /etc/logrotate.conf
  • 检查效果:ls -1 /var/log/syslog.* | wc -l(应 ≤14)

为什么改了配置还是删不掉旧日志

最容易踩坑的地方,就是把两套日志管理机制混为一谈:journalctl 管理的是二进制 journal 日志(/var/log/journal/),而 logrotate 管理的是文本 syslog 日志(如 /var/log/syslog)。如果改错了配置位置,自然无法达到删除旧日志或调整日志保留天数的目的。

另一个比较隐蔽的问题是,logrotate 配置中没有加 dateext 却设置了 daily,这可能导致归档文件名不带日期,从而影响 rotate 的判断逻辑。还有一种情况是启用了 copytruncate 却没有配置 notifempty,空日志文件同样会参与轮转,久而久之可能快速占满日志配额。

  • 确认日志类型:file /var/log/syslog(text) vs file /var/log/journal/*(data)
  • 查 journal 实际占用:journalctl --disk-usage
  • 查 logrotate 是否真执行过:sudo logrotate -d /etc/logrotate.conf 2>&1 | grep "syslog"(加 -d 调试模式)
  • 注意 maxagerotate 冲突:如果同时设了 maxage 30rotate 7,以更严格的那个为准

Ja va 应用日志的保留天数别动系统配置

Ja va 应用程序自己输出的日志(例如 /opt/myapp/logs/app.log)通常由 logback、log4j2 等日志框架负责管理,与系统日志保留策略并不相同。若强行使用 logrotatejournalctl 去处理这类应用日志,往往会因为 Ja va 进程持续占用文件而失败,甚至引发日志丢失或切割异常。

更推荐的做法,是直接在应用自身的日志框架配置文件中设置滚动与保留策略。以 logback.xml 为例,可以通过如下配置实现按时间滚动并用 maxHistory 控制日志保留天数:


logs/app.%d{yyyy-MM-dd}.%i.log

100MB

30 

如果确实需要借助系统级工具统一管理 Ja va 日志,务必确认 Ja va 进程已经正确设置 prudent=false(logback)或 append=true(log4j2),并且在 logrotate 中加入 copytruncate。否则在执行 truncate 后,正在写入的日志文件可能被清空,而 Ja va 程序又不会自动重建,最终影响日志连续性。

来源:https://www.php.cn/faq/2962523.html
上一篇CentOS 7修改主机名称的详细步骤与方法 下一篇Mac取消锁定屏幕时辅助朗读的方法
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。