journalctl - 删除特定单元的日志

问题描述 投票:0回答:2

使用journalctl,可以通过指定它们可以使用的最大磁盘空间,或者它们可以拥有的最大年龄,或者单独日志文件的最大数量来删除旧日志(使用选项

--vacuum-size
--vacuum-time 
--vacuum-files
)。

有没有办法将这种删除限制到特定的 systemd 单元?

journalctl -u <unit> --vacuum-time=2d
似乎无法按预期工作:根据文档,
-u
仅在显示日志时有效。

systemd
2个回答
86
投票

经过一番研究,我发现您无法删除特定

systemd
单元的日志,因为日志是交错的,如果您只删除一个单元,则会损坏日志,所以
journalctl
不允许您这样做。


0
投票

我找不到可能的具体版本,journaltcl文档甚至没有提到

--vacuum-time
(或-size或-files)可以与
--unit
结合使用,但我有ver:249,真空吸尘器版本:218,单位过滤器版本:195。

TLDR:接受的答案不再正确。清理一个单元的所有日志:

journalctl --vacuum-time=1s --unit=your.service

如果您不介意旋转其他所有内容的日志,并且您仍然找到来自您的设备的日志(意味着它的最后一个日志尚未旋转),您可以一次性旋转:

journalctl --rotate --vacuum-time=1s --unit=your.service

© www.soinside.com 2019 - 2024. All rights reserved.