22.3. 跟踪由带有 opensnoop的命令打开的文件


您可以使用 BCC 中的 opensnoop 工具(BPF Compiler Collection)实时监控和日志文件访问。这可用于调试、审核或了解应用程序的运行时行为。

流程

  1. 在一个终端中,运行 opensnoop 程序,以打印仅由 uname 命令进程打开的文件的输出:

    # /usr/share/bcc/tools/opensnoop -n uname
    Copy to Clipboard Toggle word wrap
  2. 在另一个终端中,输入命令来打开某些文件:

    $ uname
    The terminal running opensnoop shows the output similar to the following:
    PID    COMM 	FD ERR PATH
    8596   uname 	3  0   /etc/ld.so.cache
    8596   uname 	3  0   /lib64/libc.so.6
    8596   uname 	3  0   /usr/lib/locale/locale-archive
    ...
    Copy to Clipboard Toggle word wrap

    opensnoop 程序在整个系统中监视 open () 系统调用,并为 uname 尝试打开的每个文件打印一行输出。opensnoop 输出显示以下字段:

    PID
    进程 ID。(8596)
    COMM
    进程名称。(uname)
    FD
    文件描述符 - open ()返回的值来引用打开的文件。(3)
    ERR
    任何错误。
    PATH

    open () 试图打开的文件位置。

    如果命令尝试读取不存在的文件,则 FD 列返回 -1,ERR 列会打印与相关错误对应的值。通过使用 opensnoop,您可以识别行为不正确的应用程序。如需更多信息,请参阅系统中的 /usr/share/bcc/tools/doc/opensnoop_example.txt 文件和 open (2) 手册页。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat