清理 coredumpctl 列表

清理 coredumpctl 列表

我正在寻找一种方法来删除coredumpctl list.目前,它列出了从 2014 年 12 月 14 日开始的核心转储 - 从那时到现在,我更新了软件如此频繁,以至于我怀疑那些旧的核心转储现在是否能帮助我调试任何问题。不幸的是,删除这些文件/var/lib/systemd/coredump只会使 coredumpctls 输出的“PRESENT”列中的星号消失。

我找不到任何方法来删除联机帮助页或 coredumpctl 的帮助输出中有关 coredump 的所有信息。

答案1

首先,您可以修剪日志,丢弃一天之前的条目:

journalctl --vacuum-time=1d

由于“coredumpctl list”列出了日志记录的转储文件,因此您可以手动删除 /var/lib/systemd/coredump 中未列出的转储文件。

coredumpctl list

浏览转储文件,将文件与命令结果进行比较,并删除未列出的文件。

答案2

journalctl仅存档日志文件,不包括coredump文件,除非专门设置Storage=journal。所以接受的答案不正确(缺少条件)。

例如,journalctl --vacuum-time=7d保留不超过 7 天的日记。

我能找到的最接近的是该coredump.conf文件,用于MaxUse强制外部(默认Storage=external)存储的核心转储占用磁盘空间,默认为/var/lib/systemd/coredump.

查看kernel.core_pattern

cat /proc/sys/kernel/core_pattern
|/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h

实时FM

答案3

食谱对我有用(Fedora 37)。简而言之,首先分离当前的systemd日志文件并用新创建的日志文件替换它们非常重要:

sudo journalctl --rotate

然后进行清理:

sudo journalctl --vacuum-time=1d

在那之后:

> coredumpctl list
No coredumps found.

答案4

元数据似乎保存在 systemd 日志中,所以它已经消失了

rm /var/log/journal/*/*
killall -9 systemd-journald

缺点是所有其他系统日志也消失了。

也许更清洁的方法是中给出的方法如何清除journalctl

journalctl --vacuum-time=2d

相关内容