我已阅读文章https://tailscale.com/blog/case-of-spiky-file-descriptors/作者调查了打开文件描述符数量的异常情况。他说他使用打开文件快照来lsof
跟踪文件的生命周期:
01:12:17.24 tailcontr 142810 ubuntu 273u IPv6 5725049 0t0 TCP 172.31.10.244:https->1.2.3.4:57666 (ESTABLISHED)
01:13:32.17 tailcontr 142810 ubuntu 273u IPv6 5725049 0t0 TCP 172.31.10.244:https->1.2.3.4:57666 (CLOSE_WAIT)
01:14:03.22 tailcontr 142810 ubuntu 273u sock 0,8 0t0 5725049 protocol: TCPv6
01:16:53.93 (socket is removed)
如上例所示,应该使用哪些标志来跟踪文件的生命周期?
PS:我想研究 TCPv6 连接中的类似问题。据lsof -u <user>
我所知,有很多文件如下所示:
01:14:03.22 tailcontr 142810 ubuntu 273u sock 0,8 0t0 5725049 protocol: TCPv6
我想了解这些联系是在哪里建立的。
答案1
在你的情况下,lsof
这不是一个合适的工具。最好激活auditd
并配置它来跟踪文件的创建和删除。/etc/audit.rules
你可以添加类似
-w /path/to/file -p war -k fileops
-a always,exit -F dir=/path/to/ -S unlink -S unlinkat -S rename -S renameat -k fileops
这将监视读取、写入、附加文件操作。以及在创建文件的目录中删除(取消链接)操作。
稍后可以通过 keyname 过滤记录fileops