使用journalctl,可以通过指定它们可以使用的最大磁盘空间,或者它们可以拥有的最大年龄,或者单独日志文件的最大数量来删除旧日志(使用选项
--vacuum-size
,--vacuum-time
或 --vacuum-files
)。
有没有办法将这种删除限制到特定的 systemd 单元?
journalctl -u <unit> --vacuum-time=2d
似乎无法按预期工作:根据文档,-u
仅在显示日志时有效。
经过一番研究,我发现您无法删除特定
systemd
单元的日志,因为日志是交错的,如果您只删除一个单元,则会损坏日志,所以 journalctl
不允许您这样做。
我找不到可能的具体版本,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