22.3. 跟踪由带有 opensnoop的命令打开的文件
您可以使用 BCC 中的 opensnoop 工具(BPF Compiler Collection)实时监控和日志文件访问。这可用于调试、审核或了解应用程序的运行时行为。
流程
在一个终端中,运行
opensnoop程序,以打印仅由uname命令进程打开的文件的输出:/usr/share/bcc/tools/opensnoop -n uname
# /usr/share/bcc/tools/opensnoop -n unameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在另一个终端中,输入命令来打开某些文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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)手册页。