由于某种原因,coredumpctl
不断囤积不再有可用核心文件的条目。我怎样才能清理它们以免它们堵塞输出?
答案1
列出所有 coredump 条目及其 ID:
coredumpctl list
或者
coredumpctl list --no-pager --no-legend
识别那些没有核心文件的。
这些条目的大小将为 0 或一条消息,指示核心文件丢失。
coredumpctl remove <ID>
或者
由于
coredumpctl list
列出了日志记录的转储文件,因此您可以手动删除/var/lib/systemd/coredump
未列出的转储文件。浏览转储文件,将文件与命令结果进行比较,并删除未列出的文件。
使用以下命令删除每个条目:
rm /var/lib/systemd/coredump/core.<ID>.<executable>.core
再次运行 list 命令以检查条目是否已被删除。
为了清理 存储的所有转储核心
systemd-coredump
,您可以运行(以 root 身份):
systemd-tmpfiles --clean
为了回答您的直接问题,是的,核心转储文件可以安全删除。
更新:
除了重写日志文件之外,没有直接的方法可以清除单个条目journalctl
,这似乎不是一个简单的任务。
来自@aviro | OP 不想从 中删除文件
/var/lib/systemd/coredump
。恰恰相反。他想要删除或过滤掉中没有可用文件的coredumpctl
条目(或更准确地说:条目) 。他的抱怨是,不断囤积不再有可用核心文件的条目。 _ 囤积意味着他不想显示核心文件在.journalctl
/var/lib/systemd/coredump
_coredumpctl
/var/lib/systemd/coredump
要过滤核心转储文件丢失的条目,您可以journalctl
与消息过滤器一起使用,替换为列表条目的实际 ID:
journalctl -u systemd-coredump --grep="<ID>"
经过一番研究后,我发现您无法删除特定 systemd 单元的日志,因为日志是交错的,如果您仅删除一个单元,则会损坏日志,因此
journalctl
不允许您删除
对要从中删除条目的
program copy_journal.py
日志文件使用我的 Python 3 。/var/log/journal
systemd 的日志旨在防止这种篡改。
记录了日志文件格式这里它描述了它的支持在线前向安全密封:
标签对象用于密封日志以供更改。标签对象会定期附加到文件中。标记对象由 SHA-256 HMAC 标记组成,该标记是根据自上次写入标记以来存储在文件中的对象计算的,如果尚未写入标记,则从头开始计算。 HMAC 的密钥是通过外部维护的 FSPRG 逻辑为写入 epoch 的 epoch 计算的。序列号 seqnum 随着每个标签而增加。 [..]