lsof命令可用于追踪Linux中文件打开情况,通过lsof /path/to/file查看特定文件的占用进程,lsof -p <pid>查看指定进程打开的文件,lsof -u <username>查看某用户打开的文件,lsof -c <command>查看某命令相关进程的文件使用,lsof | grep deleted查找已删除但未释放的文件,结合watch可实现简单实时监控,而strace、fuser、inotifywait等工具可作为补充方案。

在Linux中追踪文件打开,主要是为了排查问题,比如某个进程一直在读写某个文件导致性能问题,或者想知道哪个进程占用了某个文件导致无法删除。
lsof
lsof命令实用案例
lsof
lsof
追踪特定文件:
lsof /path/to/your/file
/path/to/your/file
lsof /var/log/syslog
追踪特定进程:
lsof -p <pid>
lsof -p 1234
ps aux | grep <进程名>
top
追踪特定用户打开的文件:
lsof -u <username>
lsof -u www-data
组合使用:
lsof -c <command>
lsof -c nginx
-p
查找被删除但仍被占用的文件: 有时候,你删除了一个文件,但磁盘空间并没有释放,这可能是因为某个进程还在使用它。
lsof | grep deleted
lsof
watch
例如,要实时监控
/var/log/nginx/access.log
watch -n 1 "lsof /var/log/nginx/access.log"
-n 1
lsof
这种方法虽然简单,但效率不高,频繁执行
lsof
auditd
除了
lsof
strace
strace
lsof
strace -e trace=file -p <pid>
fuser
fuser
lsof
fuser /path/to/your/file
/path/to/your/file
fuser -k /path/to/your/file
inotifywait
inotifywait
inotifywait -m /path/to/your/file
/path/to/your/file
选择哪个工具取决于你的具体需求。 如果只是简单地查找哪个进程打开了某个文件,
lsof
fuser
strace
inotifywait
以上就是如何在Linux中追踪文件打开 Linux lsof实用案例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号