losf工具

内容提要

  1.      熟悉 lsof 的功能

2.      掌握 lsof 命令的使用

losf的功能和命令格式

  

在系统管理中常常用到 lsof 工具,是系统监测工具之一。lsof(list open files)可以用来查看正在运行中的进程打开了哪些文件、目录和套接字。

  lsof的命令格式如下:

lsof [OPTIONS] [names]

  

lsof 的选项丰富,下面仅列出一些基本的,更多的选项请查阅其手册。

选项

说明

-h

显示使用帮助信息

-a

表示所列出的选项是“与”逻辑,都必须满足时才显示结果

-R

显示进程的 PPID 列

-l

不将 UID 转化为用户登录名

-n

不将 IP 转换为主机名

-P

不将服务端口号转化为服务名称

-u Username/UID

显示由属于指定用户的进程打开的文件

-g gid

显示属于指定组的进程打开的文件

-d FD

显示指定文件描述符(file   descriptors)的进程

-c string

显示命令列中包含指定字符串 string 的进程打开的文件

-c /string/

与上面的功能相同,/ / 中可以使用正则表达式

+d Dirname

显示指定目录下被进程打开的文件

+D Dirname

与上面的功能相同,但是会搜索目录下的所有子目录

-i

显示所有网络进程打开的文件

  下面着重谈一下 -i 选项,它可跟如下参数进行输出限制:

-i [46][protocol][@hostname|hostaddr][:service|port]

  

其中:

n  4 –– IPv4

n  6 –– IPv6

n  protocol –– TCP 或 UDP

n  hostname –– 网络主机名

n  hostaddr –– IP 地址

n  service –– /etc/service 中的服务名

n  port –– 服务端口号

  

下面给出几个使用 -i 选项的例子

n  -i 6 –– 仅限于 IPv6

n  -i TCP:25 –– TCP 且端口号为 25

n  -i @1.2.3.4 –– IPv4 地址为 1.2.3.4

n  -i @[3ffe:1ebc::1]:1234 –– IPv6 地址为 3ffe:1ebc::1,端口号为 1234

n  -i UDP:who - UDP 协议的 who 服务端口

n  -i TCP@lsof.itap:513 –– TCP 协议的 513 端口,主机名为 lsof.itap

n  -i tcp@foo:1-10,smtp,99 –– TCP 协议的端口 1到10、smtp 服务端口和端口 99,主机名为 foo

n  -i tcp@bar:smtp-nameserver –– TCP 协议的端口 smtp 到 nameserver, 主机名为 bar

n  -i :time –– TCP 或 UDP 协议的 time 服务端口

  

lsof命令举例

下面给出几个使用举例:

  #       查看谁在使用指定的文件系统

[root@thinkmo ~]#        lsof /media/cdrom/

COMMAND      PID   USER         FD    TYPE DEVICE SIZE    NODE       NAME

bash 8011         root cwd  DIR  253,0        4096         390146     /media/cdrom/

bash 8536         osmond    cwd  DIR  253,0        4096         390146     /media/cdrom/

  

#       显示打开指定文件的所有进程

[root@thinkmo ~]#        lsof /var/log/messages

COMMAND PID USER      FD    TYPE DEVICE SIZE    NODE NAME

syslogd 2048 root    2w    REG 253,0 108 847031 /var/log/messages

 

#       显示由指定用户 osmond 打开的所有文件

[root@thinkmo ~]# lsof -u osmond

COMMAND      PID   USER         FD    TYPE DEVICE     SIZE NODE       NAME

sshd 7103         osmond    cwd  DIR  253,0        4096         2       /

sshd 7103         osmond    rtd    DIR  253,0        4096         2       /

bash 7104         osmond    rtd    DIR  253,0        4096         2       /

bash 7104         osmond    cwd  DIR  253,1        4096         63489       /home/osmond

sshd 7103         osmond    txt    REG 253,0        387308     824664     /usr/sbin/sshd

sshd 7103         osmond    mem         REG 253,0        125728     554968     /lib/ld-2.5.so

sshd 7103         osmond    mem         REG 253,0        11460       826459     /usr/lib/libplds4.so

sshd 7103         osmond    DEL  REG 0,8             32290       /dev/zero

sshd 7103         osmond    0u     CHR 1,3             1402         /dev/null

sshd 7103         osmond    3u     IPv6 32264                TCP  192.168.0.101:ssh->192.168.0.77:lontalk-urgnt (ESTABLISHED)

sshd 7103         osmond    4u     unix 0xdc29c200               32295       socket

sshd 7103         osmond    6r     FIFO 0,6             32305       pipe

sshd 7103         osmond    8u     CHR 5,2             693  /dev/ptmx

bash 7104         osmond    txt    REG 253,0        722684     97572       /bin/bash

bash 7104         osmond    0u     CHR 136,0                  2       /dev/pts/0

……………………

  

#       显示指定目录下被进程打开的文件

[root@thinkmo ~]# lsof +d /var

COMMAND PID USER      FD    TYPE DEVICE SIZE    NODE NAME

crond        2455 root cwd DIR 253,0 4096 845353 /var/spool

  

#       显示指定文件描述符的进程(多个FD用逗号间隔)

[root@thinkmo ~]# lsof -d txt,1

COMMAND      PID   USER         FD    TYPE DEVICE     SIZE NODE       NAME

init   1       root txt    REG 253,0        38620       422671     /sbin/init

migration 2       root txt    unknown                              /proc/2/exe

udevd       441  root txt    REG 253,0        71928       422820     /sbin/udevd

udevd       441  root 1u     CHR 1,3             1402         /dev/null

acpid         2360         root 1w    REG 253,0        1722         846999     /var/log/acpid

xinetd       2403         root 1r     CHR 1,3             1402         /dev/null

……………………

  

#       查看属于 root 用户进程所打开的文件描述符为 txt 的文件

[root@thinkmo ~]# lsof -a -u root -d txt

COMMAND      PID   USER FD   TYPE DEVICE    SIZE NODE       NAME

init   1       root txt    REG 253,0        38620       422671     /sbin/init

migration 2       root txt    unknown                              /proc/2/exe

………………

lsof   8527         root txt    REG 253,0        121396     823819     /usr/sbin/lsof

lsof   8528         root txt    REG 253,0        121396     823819     /usr/sbin/lsof

  

#       查看端口号 22 的进程的当前运行情况

[root@thinkmo ~]# lsof -i :22

COMMAND      PID   USER         FD    TYPE DEVICE SIZE NODE NAME

sshd 2386         root 3u     IPv6 6717         TCP  *:ssh (LISTEN)

sshd 7101         root 3u     IPv6 32264       TCP  192.168.0.101:ssh->192.168.0.77:lontalk-urgnt (ESTABLISHED)

sshd 7103         osmond    3u     IPv6 32264       TCP  192.168.0.101:ssh->192.168.0.77:lontalk-urgnt (ESTABLISHED)

sshd 8533         root 3u     IPv6 35679       TCP  192.168.0.101:ssh->192.168.0.77:3998 (ESTABLISHED)

sshd 8535         osmond    3u     IPv6 35679       TCP  192.168.0.101:ssh->192.168.0.77:3998 (ESTABLISHED)

 

#       查看包含指定 IP 的进程的当前运行情况

[root@thinkmo ~]#lsof -i @192.168.0.77

COMMAND PID       USER         FD    TYPE DEVICE SIZE NODE NAME

sshd 7101         root 3u IPv6 32264 TCP 192.168.0.101:ssh->192.168.0.77:lontalk-urgnt (ESTABLISHED)

sshd 7103         osmond    3u     IPv6 32264       TCP 192.168.0.101:ssh->192.168.0.77:lontalk-urgnt (ESTABLISHED)

sshd 8533         root 3u     IPv6 35679       TCP  192.168.0.101:ssh->192.168.0.77:3998 (ESTABLISHED)

sshd 8535         osmond    3u     IPv6 35679       TCP  192.168.0.101:ssh->192.168.0.77:3998 (ESTABLISHED)

  

lsof的输出项说明

常见的输出项说明:

COMMAND

进程的名称

PID

进程标识符

USER

进程所有者

FD

文件描述符,应用程序通过文件描述符识别该文件

TYPE

文件类型

DEVICE

磁盘的名称

SIZE

文件的大小

NODE

索引节点(文件在磁盘上的标识)

NAME

打开文件的确切名称

常见的文件描述符(file descriptors):

cwd

程序的当前工作目录

rtd

根目录

txt

程序文本(包括代码和数据)

mem

内存映像文件

n

n为数值,应用程序的文件描述符,这是打开该文件时返回的一个整数。(0到2,分别表示标准输入、标准输出和标准错误输出)n后的r表示打开的文件只读;w表示打开的文件只写;u表示打开的文件可读写。

常见的文件类型(TYPE):

REG

普通文件

LINK

符号链接文件

DIR

目录

CHR

字符设备

BLK

块设备

FIFO

先进先出队列

unix

UNIX 域套接字

sock

不可知域套接字

inet

Internet域套接字

IPv4

IPv4 套接字

IPv6

IPv6 网络文件

  

  

  

  

  

  

  

  

  

  

  

 

转载于:https://blog.51cto.com/12806109/2129993

Linux初级入门百篇-lsof工具相关推荐

  1. Linux初级入门百篇-​LVM 简介

    LVM 简介 内容提要 1.      理解 LVM 及其基本术语 2.      理解 LVM 与文件系统之间的关系 3.      掌握使用 LVM 的一般方法 什么是 LVM LVM 是逻辑盘卷 ...

  2. Linux初级入门(第一次作业)

    Linux初级入门 在本科期间学过一些Linux的简单命令,再次接触Linux不仅巩固了知识还学习到了很多新的东西. 什么是操作系统? 操作系统,英文名称Operating System,简称OS,是 ...

  3. 内核 入门_好消息:奔跑吧Linux内核入门酱香篇配套视频可以下载啦

    有不少小伙伴给笨叔留言,能不能直接提供入门酱香篇的配套视频下载啊?我问:B站有,为啥要下载?答曰:收藏!笨叔一时被感动了,我马上把这本书配套视频的原始文件共享出来,而且以GPL v2的协议分享,大家可 ...

  4. Linux Capabilities 入门教程--进阶实战篇

    该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 Linux Capabilities 入门教程:进阶实战篇 ...

  5. Linux Capabilities 入门教程--基础实战篇

    该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 Linux Capabilities 入门教程:进阶实战篇 ...

  6. 嵌入式 Linux 入门 环境篇(二、安装虚拟机 — 体验 Ubuntu 22.04)

    嵌入式 Linux入门 环境篇第二课,正好换了新电脑,更新 Ubuntu 虚拟机的安装, 体验一下 Ubuntu 22.04 ...... by 矜辰所致 前言 因为以前的电脑虚拟机环境我都配置好了, ...

  7. 第1章 Kali Linux入门 一篇就够了

    文章目录 第1章 Kali Linux入门 1.1 Kali的发展简史 1.2 Kali Linux工具包 1.3 下载Kali Linux 1.4 使用Kali Linux 1.4.1 Live D ...

  8. Linux 从入门到精通之入门篇

    第一章节 开山篇 基础篇: Linux入门 vm和Linux的安装 Linux目录结构 实操篇: 远程登录(XShell XFtp) vi 和vim 编辑器 开机.重启和用户登录注销 用户管理 实用指 ...

  9. 嵌入式 Linux 入门 环境篇(三、开发板和 PC 的网络互通)

    嵌入式 Linux入门 环境篇第三课,开发板与PC的网络配置, 我们要实现 windows.ubuntu 和开发板三者的互通. ...... by 矜辰所致 前言 在环境篇前面的文章我们通过终端工具使 ...

  10. Linux基础入门篇知识回顾

    Linux基础入门篇知识回顾 一.回顾书籍 二.基础知识 1.计算机基础知识 1.1计算机的特点及发展趋势 ①特点 ②发展趋势 1.2计算机系统组成 ①计算机硬件概念 ②计算机硬件各部分功能 ![在这 ...

最新文章

  1. 层次遍历二叉树(编程之美3.10)
  2. golang beego 数据输出 返回值
  3. ASP.NET Core 运行原理解剖[2]:Hosting补充之配置介绍
  4. linux网络编程之setsockopt()函数来设置socket状态以及getsockopt函数只用总结
  5. 直面桌面云带来的现状优势
  6. python os.path模块常用方法详解
  7. linux学习第四周作业练习
  8. 谁说程序员找不到女朋友,你们是不知道当程序员撩妹,一撩一个准
  9. SLAM系统原理推导
  10. 看各行从业人员给你一一点透的黑幕!亮点惊人!
  11. 嵌入式Linux应用开发完全手册 pdf 韦东山
  12. hdu5385 wyh2000 and pupil 二分图
  13. 黑盒测试方法之错误推测法概述
  14. PG数据库内核分析学习笔记_XLOG日志恢复策略
  15. python模拟网页点击_python模拟点击
  16. 【腾讯Bugly干货分享】QFix探索之路—手Q热补丁轻量级方案
  17. 算法设计与分析——位图(BitMap)
  18. 利用jquery插件的图片剪切上传功能
  19. 2021年MathorCupA题
  20. 基于COMSOL的固体力学或压力声学模块仿真声子晶体

热门文章

  1. TP6微信公众号登陆授权
  2. 人的思维谬误与心理学效应
  3. css中url用法,css cursor url用法格式详解
  4. [NISACTF 2022]
  5. macbook m1 打印机不显示打印队列的解决方法
  6. 采用esxcli命令操作esxi主机防火墙
  7. veeam备份oracle数据库,Veeam Explorer for Oracle v10:即时发布数据库!
  8. 你真的会写for循环吗?来看看这些常见的for循环优化方式
  9. ​杭州,苏州,成都哪个最宜居?
  10. AngularJS orderBy 使用要点