lsof能追踪Linux中被进程打开的文件,通过文件描述符揭示进程与文件的动态关系,可用于查找被删除但仍在占用空间的文件(显示为(deleted))、诊断端口占用(lsof -i :端口)及网络连接问题,是系统调试与性能分析的高效工具。

在Linux系统中追踪文件,
lsof
要追踪Linux中的文件,
lsof
lsof
比如,如果你想知道某个特定文件被哪个进程打开了,可以这样:
lsof /path/to/your/file
这会列出所有打开
/path/to/your/file
lsof -p 12345
这只是冰山一角,
lsof
说实话,刚接触
lsof
lsof
lsof
它能够揭示的活动包括:
r
w
u
lsof -i
lsof
它就像一个系统级的X光机,能穿透表象,让我们看到文件在系统内部的真实状态和生命周期。这种能力,对于系统管理员和开发者来说,简直是无价之宝。
这是一个非常经典的
lsof
df -h
lsof
lsof | grep deleted
你会看到类似这样的输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME (deleted) 12345 user 6u REG 253,0 12345678 98765 /var/log/some_large_log_file (deleted)
这里的关键是
(deleted)
6u
u
解决办法通常是:
fuser
/proc
理解这个机制,能帮助我们避免很多不必要的磁盘空间焦虑,也能更深入地理解Linux文件管理的底层逻辑。
网络问题,尤其是在服务器上,总是让人头疼。端口被占用、服务无法启动、连接异常……这些问题,
lsof
-i
最常见的用法是查找哪个进程占用了某个端口:
lsof -i :8080
这会列出所有监听或连接到8080端口的进程。输出会显示进程ID、用户、网络协议(TCP/UDP)、本地地址、远程地址和状态(LISTEN、ESTABLISHED等)。这对于排查“Address already in use”错误简直是神来之笔。
如果你想看所有TCP连接:
lsof -i TCP
或者所有UDP连接:
lsof -i UDP
更进一步,你可以结合IP地址来过滤:
lsof -i @192.168.1.100
这会显示所有与192.168.1.100这个IP地址有交互的进程。
我个人在排查服务启动失败时,
lsof -i :<PORT>
lsof
以上就是如何在Linux中追踪文件 Linux lsof实用案例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号