Linux怎么设置日志最大保留天数_Linux journald日志大小限制【技巧】

夏杰吖_3557

夏杰吖_3557

2026-03-30

950人浏览

原创

需配置maxretentionsec参数实现日志按时间保留:一、修改/etc/systemd/journald.conf中maxretentionsec=30day并重启服务;二、用journalctl --vacuum-time=15d手动清理;三、结合systemmaxuse=500m双限;四、cron定时执行vacuum-time;五、验证最早日志时间戳是否合规。

linux怎么设置日志最大保留天数_linux journald日志大小限制【技巧】

如果您发现Linux系统中systemd-journald日志持续增长,占用大量磁盘空间,且希望按时间维度精准控制日志保留周期,则需配置日志最大保留天数。以下是实现该目标的多种可行方法:

一、修改journald.conf配置文件设置MaxRetentionSec

此方法通过持久化配置强制journal服务在启动和运行时自动清理超过指定天数的日志,属于系统级全局策略,重启服务后长期生效。

1、使用文本编辑器打开journald主配置文件:
sudo nano /etc/systemd/journald.conf

2、定位到[Journal]段落,取消注释并修改以下行:
MaxRetentionSec=30day

3、保存文件并退出编辑器。

4、重启journald服务以应用更改:
sudo systemctl restart systemd-journald

5、立即验证效果,执行命令查看当前日志总量:
journalctl --disk-usage

二、使用journalctl --vacuum-time命令手动触发时间清理

该方式不修改配置文件,适用于临时性、一次性或调试场景下的快速清理,仅作用于当前已存在的日志归档,不会影响后续新日志的生成策略。

1、执行按时间清理指令,保留最近15天日志:
sudo journalctl --vacuum-time=15d

2、确认清理结果,观察输出中的“Vacuuming done”提示及释放空间数值。

3、如需保留更短周期(例如7天),将参数改为:
sudo journalctl --vacuum-time=7d

三、结合SystemMaxUse与MaxRetentionSec双参数协同限制

单一时间限制可能因日志密度突增导致磁盘仍被占满,因此建议同时设定大小上限与时间上限,形成双重保险机制,确保即使高频率写入也不会突破容量红线。

1、编辑配置文件:
sudo nano /etc/systemd/journald.conf

2、在[Journal]节下添加或修改两行:
MaxRetentionSec=30day
SystemMaxUse=500M

3、保存后重启服务:
sudo systemctl restart systemd-journald

4、运行检查命令确认两项策略均已加载:
journalctl --disk-usage

四、创建定时任务每24小时自动执行vacuum-time清理

对于无法修改系统配置的受限环境(如容器、只读根文件系统),可借助cron定期调用vacuum命令模拟自动保留策略,无需重启服务即可维持日志时效性。

1、编辑root用户的crontab:
sudo crontab -e

2、添加以下行(每天凌晨2点执行):
0 2 * * * /usr/bin/journalctl --vacuum-time=30d > /dev/null 2>&1

3、保存退出,系统将自动加载该计划任务。

4、手动运行一次以测试脚本有效性:
sudo journalctl --vacuum-time=30d

五、验证日志保留策略是否实际生效

配置完成后必须验证时间边界是否被准确识别与执行,避免因单位误写(如day写成days)、语法错误或权限问题导致策略静默失效。

1、查询最早一条日志的时间戳:
journalctl --no-pager --lines=1 --reverse

2、对比当前系统时间与该时间戳的差值,确认是否超出设定天数。

3、若存在明显超期日志,检查journald状态:
sudo systemctl status systemd-journald

4、重点查看输出中是否包含"Max file retention time set to..."字样,这是配置被成功加载的关键标志。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

2023.09.22

529

3

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

2024.03.01

1678

6

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3890

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3333

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2473

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5970

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5602

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3293

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2805

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习