【性能监控命令_04】lsof能看到什么??TCP连接状态?
lsof命令是Liunx操作系统中对文件进行监控的一个常用命令,使用该命令可以列出当前系统打开了那些文件,系统中某个进程打开了那些文件等信息。
lsof命令必须在root下运行,因为lsof命令执行时候需要访问核心内存和内核文件。
如下是直接运行使用lsof命令得到的一部分截图数据,
第一列:展示了进程的名称,
第二列:为进程ID
第四列:为进程的所有者
第五列:为文件描述符,cwd:为当前工作目录。mem:表示把磁盘文件映射到内存中。txt:进程运行的程序文件,包括编译后的代码。rtd:表示root目录。pd:表示父目录。ltx:表示共享的lib数据。m86:合并映射文件。mmap:表示把磁盘设备映射到内存中。err:文件描述信息错误。tr:表示内核跟踪文件。DEl:表示已经删除的Liunx映射文件。数字+字符,如0u、1w、2w等,0表示标准输出,1表示标准注入,2表示标准错误,u表示文件被打开,且处于读取/写入模式。r只读模式,w表示打开且处于写入模式。
第六列:为打开的文件类型,DIR 为目录,CHR特殊字符文件,LINK 链接文件,IPv4 IPV4嵌套文件.IPv6打开了一根IPv6文件,REG 普通文件,FIFO先进先出的队列文件。unix域套接字 通信方式。MPB 多路复用的块文件。MPC 多路复用的字符文件。inet intet域套接字
第七列:设备号,已逗号分隔,
第八列:文件大小
第九列:操作系统本地文件的node number或者服务器主机中的NFS文件的inode unmber或者协议类型
第十列:文件的绝对路径或者网络通信链接的地址、端口,状态或者挂载点等
lsof加参数
1、lsof -c:查看某个进程名称当前打开了那些文件。
2、lsof -p: 查看某个进程ID当前打开了那些文件。
3、lsof -i: 查看IPv4 v6下打开的文件,此时看到的大部分是网络链接通信,回包括服务段的Listen监听或者客户端和服务段的网络通信。
冒号后面加端口时,可以定位到某个端口下v4 v6模式打开的文件和该端口的网络链接通信。如上图,可看到22端口下的网络链接通信情况。可以看到22端口下有两个监听,一个是v4 另外一个是v6,都启在了root用户下,为tcp连接。
连接状态如下