网站文章不收录怎么做,电脑网站与手机的区别,网络营销的具体形式种类,今天刚刚发生的新闻最新新闻Linux系统之lsof命令的基本使用 一、lsof命令的基本使用二、lsof命令的使用帮助2.1 lsof命令的help帮助信息2.2 lsof命令帮助解释 三、lsof的基本使用3.1 直接使用lsof命令3.2 查看某个进程打开的所有文件3.3 查看某个用户打开的所有文件3.4 查看某个文件被哪些进程打开3.5 查看… Linux系统之lsof命令的基本使用 一、lsof命令的基本使用二、lsof命令的使用帮助2.1 lsof命令的help帮助信息2.2 lsof命令帮助解释 三、lsof的基本使用3.1 直接使用lsof命令3.2 查看某个进程打开的所有文件3.3 查看某个用户打开的所有文件3.4 查看某个文件被哪些进程打开3.5 查看某个端口被哪些进程占用3.6 查看某个目录下被哪些进程打开的文件3.7 查看打开某个类型文件的进程列表 四、lsof使用注意事项 一、lsof命令的基本使用 lsoflist open files命令是用于查看系统中打开文件的工具可以列出当前系统打开的所有文件包括文件、文件夹、网络连接等可以帮助我们查找一些占用磁盘空间或者占用网络带宽的进程。 二、lsof命令的使用帮助
2.1 lsof命令的help帮助信息 查看lsof命令的help帮助信息 [rootjeven ~]# lsof --help
lsof: illegal option character: -
lsof: -e not followed by a file system path: lp
lsof 4.87latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQlatest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_manusage: [-?abhKlnNoOPRtUvVX] [|-c c] [|-d s] [D D] [|-f[gG]] [|-e s][-F [f]] [-g [s]] [-i [i]] [|-L [l]] [m [m]] [|-M] [-o [o]] [-p s]
[|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [|-w] [-x [fl]] [--] [names]
Defaults in parentheses; comma-separated set (s) items; dash-separated ranges.-?|-h list help -a AND selections (OR) -b avoid kernel blocks-c c cmd c ^c /c/[bix] c w COMMAND width (9) d s dir s files-d s select by FD set D D dir D tree *SLOW?* |-e s exempt s *RISKY*-i select IPv[46] files -K list tasKs (threads) -l list UID numbers-n no host names -N select NFS files -o list file offset-O no overhead *RISKY* -P no port names -R list paRent PID-s list file size -t terse listing -T disable TCP/TPI info-U select Unix socket -v list version info -V verbose search|-w Warnings () -X skip TCPUDP* files -Z Z context [Z]-- end option scanf|-f filesystem or -file names |-f[gG] flaGs-F [f] select fields; -F? for help|-L [l] list () suppress (-) link counts l (0 all; default 0)m [m] use|create mount supplement|-M portMap registration (-) -o o o 0t offset digits (8)-p s exclude(^)|select PIDs -S [t] t second stat timeout (15)-T qs TCP/TPI Q,St (s) info-g [s] exclude(^)|select and print process group IDs-i i select by IPv[46] address: [46][proto][host|addr][:svc_list|port_list]|-r [t[mfmt]] repeat every t seconds (15); until no files, - forever.An optional suffix to t is mfmt; m must separate t from fmt andfmt is an strftime(3) format for the marker line.-s p:s exclude(^)|select protocol (p TCP|UDP) states by name(s).-u s exclude(^)|select login|UID set s-x [fl] cross over d|D File systems or symbolic Linksnames select named files or files on named file systems
Anyone can list all files; /dev warnings disabled; kernel ID check disabled.2.2 lsof命令帮助解释
语法
lsof [选项] [文件、目录名或进程ID]选项
-a列出打开文件存在的进程
-c进程名列出指定进程所打开的文件
-g列出GID号进程详情
-d文件号列出占用该文件号的进程
d目录列出目录下被打开的文件
D目录递归列出目录下被打开的文件
-n目录列出使用NFS的文件
-i条件列出符合条件的进程协议、:端口、 ip
-p进程号列出指定进程号所打开的文件
-u列出UID号进程详情
-h显示帮助信息
-v显示版本信息
三、lsof的基本使用
3.1 直接使用lsof命令 使用lsof命令可以列出当前系统中打开的所有文件和网络连接包括哪些进程打开了哪些文件、哪些网络连接被哪些进程使用等等。 lsofcommand PID USER FD type DEVICE SIZE NODE NAMECOMMAND列打开文件的进程的名称。 PID列打开文件的进程的标识符。 USER列打开文件的进程的所有者。 FD列打开文件的进程的文件描述符。 TYPE列打开文件的类型如REG常规文件、DIR目录、CHR字符设备、FIFO管道、SOCK套接字等。 DEVICE列打开文件所在的设备的编号。 SIZE/OFF列文件的大小或偏移量。 NODE列打开文件的节点号码。 NAME列打开文件的路径和文件名。 3.2 查看某个进程打开的所有文件 例如查询sshd服务进程的PID号 [rootjeven ~]# ps aux |grep ssh
root 9347 0.0 0.0 112756 4312 ? Ss 06:22 0:00 /usr/sbin/sshd -D
root 30102 0.0 0.0 161316 6052 ? Ss 17:14 0:00 sshd: rootpts/1
root 30109 0.0 0.0 161312 6040 ? Ss 17:14 0:00 sshd: rootnotty
root 30154 0.0 0.0 74176 2940 ? Ss 17:14 0:00 /usr/libexec/openssh/sftp-server
root 31429 0.0 0.0 112712 968 pts/1 S 18:57 0:00 grep --colorauto ssh使用lsof查询该进程打开的所有文件 lsof -p 93473.3 查看某个用户打开的所有文件 查看某个用户打开的所有文件 [rootjeven ~]# lsof -u apache |head
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 31674 apache cwd DIR 253,0 278 64 /
httpd 31674 apache rtd DIR 253,0 278 64 /
httpd 31674 apache txt REG 253,0 527736 8888916 /usr/sbin/httpd
httpd 31674 apache mem REG 253,0 37216 9300529 /usr/lib64/libnss_sss.so.2
httpd 31674 apache mem REG 253,0 105824 8467438 /usr/lib64/libresolv-2.17.so
httpd 31674 apache mem REG 253,0 31408 8467426 /usr/lib64/libnss_dns-2.17.so
httpd 31674 apache mem REG 253,0 61624 8467428 /usr/lib64/libnss_files-2.17.so
httpd 31674 apache mem REG 253,0 27720 51070491 /usr/lib64/httpd/modules/mod_cgi.so
httpd 31674 apache mem REG 253,0 68192 8541901 /usr/lib64/libbz2.so.1.0.63.4 查看某个文件被哪些进程打开 查看某个文件被哪些进程打开 [rootjeven ~]# lsof /usr/sbin/httpd
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 31673 root txt REG 253,0 527736 8888916 /usr/sbin/httpd
httpd 31674 apache txt REG 253,0 527736 8888916 /usr/sbin/httpd
httpd 31675 apache txt REG 253,0 527736 8888916 /usr/sbin/httpd
httpd 31676 apache txt REG 253,0 527736 8888916 /usr/sbin/httpd
httpd 31677 apache txt REG 253,0 527736 8888916 /usr/sbin/httpd
httpd 31678 apache txt REG 253,0 527736 8888916 /usr/sbin/httpd3.5 查看某个端口被哪些进程占用 查看所有网络连接 lsof -i查看某个端口被哪些进程占用 [rootjeven ~]# lsof -i :22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 9347 root 3u IPv4 59897 0t0 TCP *:ssh (LISTEN)
sshd 9347 root 4u IPv6 59899 0t0 TCP *:ssh (LISTEN)
sshd 30102 root 3u IPv4 259806 0t0 TCP jeven.dhcp-route:ssh-DESKTOP-R1B8FG7.dhcp-route:58104 (ESTABLISHED)
sshd 30109 root 3u IPv4 258689 0t0 TCP jeven.dhcp-route:ssh-DESKTOP-R1B8FG7.dhcp-route:58107 (ESTABLISHED)3.6 查看某个目录下被哪些进程打开的文件 查看某个目录下被哪些进程打开的文件 [rootjeven ~]# lsof D /tmp
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
fastgithu 8959 root mem-R REG 253,0 4096 1017250 /tmp/.dotnet/shm/global/FastGithub
fastgithu 8959 root 8u unix 0xffff930eaf1e5800 0t0 52317 /tmp/dotnet-diagnostic-8959-1410-socket
fastgithu 8959 root 108r DIR 253,0 20 219680441 /tmp/.dotnet/shm
fastgithu 8959 root 109uR REG 253,0 4096 1017250 /tmp/.dotnet/shm/global/FastGithub
postmaste 9582 postgres 9u unix 0xffff930d35c18800 0t0 66632 /tmp/.s.PGSQL.5432
X 9603 root 8u unix 0xffff930d32916000 0t0 65977 /tmp/.X11-unix/X0
gnome-ses 12391 gdm 13u unix 0xffff930d2c1e7c00 0t0 69454 /tmp/.ICE-unix/123913.7 查看打开某个类型文件的进程列表 查看打开某个类型文件的进程列表 [rootjeven ~]# lsof -t /usr/sbin/httpd
31673
31674
31675
31676
31677
31678四、lsof使用注意事项 需要root权限才能使用lsof命令。 lsof命令需要一定时间才能完成扫描因此不应在生产环境下滥用。 使用lsof命令时应确保使用的是最新版本以防止出现已知的bug。 使用时应仔细查看命令输出尤其是对于打开套接字的程序及其连接以避免意外暴露敏感信息。 lsof命令的扫描范围包括所有已打开的文件和网络套接字因此执行时可能会对系统性能产生一定的影响如果对性能敏感应考虑使用其他更轻量级的工具。 在使用lsof命令时应确保已经对电脑进行了必要的安全保护以避免受到黑客攻击或数据泄露。