首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >清理代码列表

清理代码列表
EN

Unix & Linux用户
提问于 2015-08-05 20:33:31
回答 5查看 24.9K关注 0票数 38

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

我找不到任何方法来删除手册中或coredumpctl的帮助输出中关于代码转储的所有信息。

EN

回答 5

Unix & Linux用户

发布于 2018-11-13 06:49:49

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

代码语言:javascript
运行
复制
journalctl --vacuum-time=1d

因为"coredumpctl列表“列出了日志记录的dumpfile,所以您可以手动删除未列出的/var/lib/systemd/coredump中的转储文件。

代码语言:javascript
运行
复制
coredumpctl list

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

票数 7
EN

Unix & Linux用户

发布于 2020-10-07 11:59:53

journalctl只存档日志文件,它不包括coredump文件,除非专门设置Storage=journal。因此,接受的答案是不正确的(缺失的条件)。

journalctl --vacuum-time=7d保存的日记账不超过7天。

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

检查kernel.core_pattern

代码语言:javascript
运行
复制
cat /proc/sys/kernel/core_pattern
|/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h

RTFM

票数 5
EN

Unix & Linux用户

发布于 2021-04-02 15:21:56

看起来正确的答案比预期的要容易。

为了清理由systemd存储的所有转储核心,您可以运行(作为root):

代码语言:javascript
运行
复制
systemd-tmpfiles --clean

您仍然会得到以下已丢弃核心的列表:

代码语言:javascript
运行
复制
coredumpctl

但是抛出的核心实际上会消失,输出会告诉你它们是missing。请参阅相关 man 页面以获得更多详细信息。

如果您想完全禁用这个systemd特性,可以通过systemctl (作为root)完成:

代码语言:javascript
运行
复制
systemctl disable systemd-coredump.socket
systemctl stop systemd-coredump.socket
systemctl status systemd-coredump.socket
systemctl disable systemd-coredump.socket

请注意,这个移动将无法生存的重新启动:系统d将重新启用.它在重新启动!

要真正做到这一点,您必须“隐藏”该系统模块。这反过来又转化为:

代码语言:javascript
运行
复制
sudo ln -fs /dev/null /etc/sysctl.d/50-coredump.conf

请记住,至少在我的Arch上,我的/proc/sys/kernel/core_pattern读取|/bin/false,这完全避免了通过/bin/false二进制文件来平移核心转储(根本不做任何事情)。

有关更多细节,请查看相关手册页和您的发行文档。

票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/220420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档