本文共 1641 字,大约阅读时间需要 5 分钟。
lsof 命令(List Open Files,列出打开的文件)是 Unix/Linux 系统中一个强大的系统监控工具。它能够帮助管理员快速查看系统中各进程打开的文件、网络连接以及相关信息。本文将从多个维度详细解析 lsof 命令的使用方法和实战技巧。
在 Unix/Linux 系统中,任何资源(文件、设备、网络连接等)都会通过文件描述符(File Descriptor)被应用程序访问。文件描述符为进程与操作系统之间提供通用接口。通过 lsof 命令,管理员可以:
lsof 具有强大的过滤功能,能够根据进程 UID、GID、文件名等条件筛选输出,极大简化了工作量。
lsof [选项] [参数]
其中,常用选项和参数如下:
-a
:显示所有打开文件的进程列表(默认行为)。-c
:指定要查询的进程名称。-g
:按进程 GID 键入。-d
:根据文件描述符 ID or 文件 inode 查找进程。-D
:按目录名查找所在目录下所有文件。-n
:显示 NFS 共享文件。-i
:按端口、IP 或其他条件筛选进程。-p
:指定进程号查找文件。-u
:按 UID 查找进程。-h
:显示帮助信息。-v
:显示 lsof 版本。+d
:递归查找指定目录下所有被打开的文件。查看网络端口信息
lsof -i :22
批量处理与筛选输出
lsof -d | grep cwd
cwd
开头的进程(默认文件系统根目录)。备份文件:
cp /var/log/messages /var/log/messages_bac
启动 lsof 查看进程:
lsof | grep /var/log/messages
删除文件:
rm /var/log/messages
观察状态变化:
lsof | grep /var/log/messages
(deleted)
,表示文件被删除了,但进程仍在占用该文件描述符。找到文件描述符:
cd /proc/PID/fd/1
恢复文件:
cat /proc/PID/fd/1 > /var/log/messages
lsof 是每一个 Linux 系统管理员的必备工具,能够显示系统内文件和网络资源的状态。掌握 lsof 的使用方法,能够显著提升故障排查的效率。但需要注意,lsof 操作可能导致文件被锁定或删除,建议在恢复文件前谨慎处理。
通过结合 ps
、top
、Strings
等工具,可以更全面地监控系统状态,例如:
lsof | grep deletedps aux | grepJoinedtop -n 10
希望这篇文章能帮助您更好地掌握 lsof 命令的使用方法,期待您的反馈与评论!
转载地址:http://cxwfk.baihongyu.com/