环境: Debian 11
打开文件 nano /etc/systemd/journald.conf
- 接下来我会选一些会用到的进行说明
限制大小
日志大小的单位可以使用以 1024 为基数的 K, M, G, T, P, E 后缀
- 限制全部日志文件加在一起最多可以占用多少空间
SystemMaxUse=
: 限制/var/log/journal
目录的总大小RuntimeMaxUse=
: 限制/run/log/journal
这个的- 默认值是 10%空间与 4G 空间两者中的较小者
- 设置磁盘空间的最小保留量, 当小于这个值则停止写入日志
SystemKeepFree=
与RuntimeKeepFree=
- 主要用于防止被刷日志导致占满硬盘, 默认值是硬盘的 15%
- 限制单个日志文件的最大体积
SystemMaxFileSize=
与RuntimeMaxFileSize=
- 默认值是对应的
SystemMaxUse=
与RuntimeMaxUse=
值的 1/8
- 限制最多允许同时存在多少个日志文件
SystemMaxFiles=
与RuntimeMaxFiles=
- 超出此限制后, 最老的日志文件将被删除, 而当前的活动日志文件则不受影响。 默认值为 100 个。
我这里给个示例
# 所有日志总大小不超过1G
SystemMaxUse=1024M
RuntimeMaxUse=1024M
# 磁盘低于15%时停止写入日志
SystemKeepFree=15%
RuntimeKeepFree=15%
# 每个日志 64M
SystemMaxFileSize=64M
RuntimeMaxFileSize=64M
# 最多保留7个日志
SystemMaxFiles=7
RuntimeMaxFiles=7
提醒下:
SystemKeepFree
这个参数假如硬盘已被占满, 他是不会删除已有的日志的, 只会暂停写入
时间滚动
- 日志滚动的时间间隔 (每 N 个时间创建一个日志)
MaxFileSec=
- 单位:
- 1m: 1 分钟
- 1h: 1 小时
- 1d: 1 天
- 1w: 1 周
1y
: 1 年2w 3d
: 2 周+三天
不推荐
使用这个基于时间的日志滚动策略, 你可以使用上面的基于大小的策略(SystemMaxFileSize)
- 日志文件在硬盘的最大保留期限
MaxRetentionSec=
- 单位: 同上
- 当日志文件的最后修改时间(mtime)与当前时间之差, 大于此处设置的值时,日志文件将会被删除
参考文章:
https://manpages.ubuntu.com/manpages/focal/zh_CN/man5/journald.conf.5.html