linux abrt的用法

本文介绍了在Linux环境下如何配置abrt服务来自动生成core文件,以便于程序异常时进行问题定位。文中详细说明了如何修改abrt-action-save-package-data.conf文件以确保所有崩溃程序都能被分析,并调整core文件的大小限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在linux调试程序,最痛苦的就是程序异常宕掉,但是找不到core文件,很难定位问题。但是有了core文件就容易定位多了。

一般是可以通过在环境变量中设置ulimit -c unlimited。但是现场实施人员有时会忘记设置这条命令。那么怎么办呢,可以通过设置linux的abrt服务来实现。


修改abrt-action-save-package-data.conf文件


将其修改为:

vi /etc/abrt/abrt-action-save-package-data.conf

# With this option set to "yes",
# only crashes in signed packages will be analyzed.
# the list of public keys used to check the signature is
# in the file gpg_keys
#
OpenGPGCheck = no


# Blacklisted packages
#
BlackList = nspluginwrapper, valgrind, strace, mono-core


# Process crashes in executables which do not belong to any package?
#
ProcessUnpackaged = yes


# Blacklisted executable paths (shell patterns)
#
BlackListedPaths = /usr/share/doc/, /example*, /usr/bin/nspluginviewer, /usr/lib/xulrunner-*/plugin-container


还可以调整core文件的大小:

[root@xx-host2 abrt]# cat abrt.conf 
# Enable this if you want abrtd to auto-unpack crashdump tarballs which appear
# in this directory (for example, uploaded via ftp, scp etc).
# Note: you must ensure that whatever directory you specify here exists
# and is writable for abrtd. abrtd will not create it automatically.
#
#WatchCrashdumpArchiveDir = /var/spool/abrt-upload


# Max size for crash storage [MiB] or 0 for unlimited
#
MaxCrashReportsSize = 1000


# Specify where you want to store coredumps and all files which are needed for
# reporting. (default:/var/spool/abrt)
#
# Changing dump location could cause problems with SELinux. See man abrt_selinux(8).
#
#DumpLocation = /var/spool/abrt


# If you want to automatically clean the upload directory you have to tweak the
# selinux policy.
#
DeleteUploaded = no


重启 abrtd 服务:  service abrtd restart

有了core文件也需要及时删除,通过abrt-cli list查看文件的包,然后用abrt-cli rm 【文件包】就可以了。

abrt-cli rm <ccpp folder from list >


<think>好的,我现在需要回答用户关于abrt-cli的问题。首先,我得确认自己对这个工具的了解程度。abrt-cli是ABRT(Automatic Bug Reporting Tool)的命令行界面工具,主要用于在Linux系统中自动检测和处理程序崩溃的问题。 接下来,我应该回忆一下ABRT的基本功能。ABRT能够监控系统中的应用崩溃事件,收集相关的调试信息,如核心转储、堆栈跟踪等,并帮助用户生成报告,方便提交给开发者进行问题分析。而abrt-cli则是通过命令行来操作这些功能的工具。 用户可能想知道如何安装abrt-cli,所以我需要确认不同Linux发行版的安装命令。例如,在Fedora或RHEL/CentOS中,可能使用dnf或yum安装,而在Debian/Ubuntu中则是apt。需要确保这些信息的准确性,避免给出错误的命令。 然后,常见的用法包括列出当前的问题、查看详细信息、生成报告以及删除问题记录。需要详细说明每个命令的具体参数和示例,比如abrt-cli list、abrt-cli info $ID、abrt-cli report $ID等。同时,要注意是否需要root权限,比如删除问题可能需要sudo。 用户可能还会关心如何配置abrt-cli,例如设置自动报告或调整存储位置。这时需要提到配置文件的位置,如/etc/abrt/abrt.conf,并说明关键参数的作用。 此外,需要注意与其他工具的区别,比如abrt-cli与apport(Ubuntu的类似工具)的不同,帮助用户理解在何时使用哪个工具。 最后,确保回答结构清晰,分点说明,使用中文,并检查LaTeX格式是否符合要求。虽然用户的问题不涉及数学公式,但系统指令中提到行内公式要用$...$,这里可能用不上,但需留意其他可能的数学表达式。确认所有技术细节正确,避免错误信息,保持回答真实可靠。</think>abrt-cli 是 **ABRT(Automatic Bug Reporting Tool)** 的命令行工具,主要用于在 Linux 系统中处理应用程序崩溃事件。以下是对其功能、用法及关键操作的逐步说明: --- ### **1. ABRT 的核心功能** - **自动检测崩溃**:监控系统中的应用崩溃(如段错误、未处理异常等)。 - **收集调试信息**:自动生成核心转储、堆栈跟踪、程序日志等关键数据。 - **生成报告**:整理信息为可提交的格式,帮助开发者定位问题。 --- ### **2. 安装 abrt-cli** - **Fedora/RHEL/CentOS**: ```bash sudo dnf install abrt-cli # Fedora 或 RHEL 8+ sudo yum install abrt-cli # CentOS 7 或旧版 ``` - **Debian/Ubuntu**: ```bash sudo apt install abrt-cli ``` --- ### **3. 常用命令与操作** #### **3.1 列出当前崩溃事件** ```bash abrt-cli list ``` 输出示例: ``` ID 日期 程序 原因 1 2023-10-01 /usr/bin/python3 Segmentation fault ``` #### **3.2 查看事件详情** ```bash abrt-cli info 1 # 替换为实际事件 ID ``` 输出包括: - 崩溃时间、程序路径 - 核心转储文件路径(如 `/var/spool/abrt/ccpp-2023-10-01-1234`) - 堆栈跟踪、环境变量等。 #### **3.3 生成崩溃报告** ```bash abrt-cli report 1 # 生成报告并提示是否提交 ``` - 报告内容会发送到预配置的服务器(需权限确认)。 - 支持自定义报告路径:`abrt-cli report -o report.txt 1` #### **3.4 删除崩溃记录** ```bash abrt-cli remove 1 # 删除单个事件 sudo abrt-cli rm all # 删除所有记录(需 root 权限) ``` --- ### **4. 配置与高级用法** - **配置文件路径**:`/etc/abrt/abrt.conf` - 修改 `MaxCrashReportsSize` 限制存储空间。 - 设置 `AutoreportingEnabled=yes` 启用自动报告。 - **调试核心转储**: ```bash gdb /path/to/program /var/spool/abrt/ccpp-XXXX/coredump ``` --- ### **5. 注意事项** - **权限要求**:部分操作(如删除记录)需 `sudo`。 - **兼容性**:ABRT 主要用于 Fedora/RHEL 系发行版,Ubuntu 默认使用 `apport`。 - **日志位置**:崩溃数据默认存储在 `/var/spool/abrt/`。 如需进一步调试,可结合 `coredumpctl` 或 `gdb` 分析核心转储文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值