Linux lsof 命令
-a 指示其它选项之间为与的关系-c <进程名> 输出指定进程所打开的文件-d <文件描述符> 列出占用该文件号的进程+d <目录>? 输出目录及目录下被打开的文件和目录(不递归)+D <目录>? 递归输出及目录下被打开的文件和目录-i <条件>? 输出符合条件与网络相关的文件-n 不解析主机名-p <进程号> 输出指定 PID 的进程所打开的文件-P 不解析端口号-t 只输出 PID-u 输出指定用户打开的文件-U 输出打开的 UNIX domain socket 文件-h 显示帮助信息-v 显示版本信息
COMMAND:程序的名称 PID:进程标识符USER:进程所有者FD:文件描述符,应用程序通过文件描述符识别该文件TYPE:文件类型,如 DIR、REG 等DEVICE:以逗号分隔设备编号SIZE:文件的大小(bytes)NODE:索引节点(文件在磁盘上的标识)NAME:打开文件的确切名称 FD 列中的常见内容有 cwd、rtd、txt、mem 和一些数字等等。其中 cwd 表示当前的工作目录;rtd 表示根目录;txt 表示程序的可执行文件;mem 表示内存映射文件:
TYPE 列中常见的 REG 和 DIR 分别表示普通文件和目录。而 CHR 和 BLK 则分别表示字符和块设备,unix、fifo 和 IPv4/IPv6 分别表示 UNIX domain 套接字、先进先出(FIFO)队列和 IPv4/IPv6 套接字。
$ lsof /bin/bash
$ lsof /dev/sda1
+d 选项不执行递归查询,只查找那些打开了指定目录以及指定目录下文件和目录的进程,比如: $ lsof +d /var/log
+D 选项则会对指定的目录进行递归: $ lsof +D /var/log
$ lsof -p
$ lsof -a -p $$ -d0,,
$ lsof -c cr
$ lsof -c ^cr
$ lsof -c /cr[ao]/
[46][protocol][@hostname|hostaddr][:service|port] 46 表示 IP 协议的版本 表示网络协议的名称,比如 TCP 或 UDP ? 或 hostaddr 表示主机地址 指 /etc/services 中的名称,比如 smtp 或多个服务的列表 表示端口号,可以指定一个或多个
$ lsof -i
$ lsof -i lsof -i
$ lsof -i:
$ -i TCP:-
$ lsof -a -c sshd -U
$ lsof -u syslog
$ lsof -a -i -u nick
$ lsof -i -u ^nick
$ - $(lsof -t -u nick)
$ lsof -P -n | -l
$ /var/log/syslog
$ -n /proc//fd/
$ -c /var/log/syslog
$ syslog:adm /var/log/ systemctl restart rsyslog.service
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |