一个日志文件把我绕进去了,处理问题被迫用到了lsof

本来只想看一下该日志文件被哪些进程占用

不过现在还是系统的来看看吧

lsof命令是什么?

是一个列出当前系统打开文件的工具。被打开的文件可以是

1.普通的文件,2.目录  3.网络文件系统的文件,4.字符设备文件  5.(函数)共享库  6.管道,命名管道 7.符号链接

8.底层的socket字流,网络socket,unix域名socket

9.在linux里面,大部分的东西都是被当做文件的…..还有其他很多

在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。

在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。

COMMAND    PID      USER   FD      TYPE     DEVICE     SIZE       NODE      NAME

init       1         root  cwd      DIR       3,3       1024       2         /

init       1         root  rtd      DIR       3,3       1024       2         /

init       1         root  txt      REG       3,3       38432      1763452  /sbin/init

init       1         root  mem      REG       3,3       106114     1091620  /lib/libdl-2.6.so

init       1         root  mem      REG       3,3       7560696    1091614  /lib/libc-2.6.so

init       1         root  mem      REG       3,3       79460      1091669  /lib/libselinux.so.1

init       1         root  mem      REG       3,3       223280     1091668  /lib/libsepol.so.1

init       1         root  mem      REG       3,3       564136     1091607  /lib/ld-2.6.so

init       1         root  10u      FIFO      0,15                  1309     /dev/initctl

每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件。lsof输出各列信息的意义如下:

COMMAND:进程的名称

PID:进程标识符

USER:进程所有者

FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等

TYPE:文件类型,如DIR、REG等

DEVICE:指定磁盘的名称

SIZE:文件的大小

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

NAME:打开文件的确切名称

其中FD 列中的文件描述符cwd 值表示应用程序的当前工作目录,这是该应用程序启动的目录,除非它本身对这个目录进行更改。txt 类型的文件是程序代码,如应用程序二进制文件本身或共享库,如上列表中显示的 /sbin/init 程序。其次数值表示应用程序的文件描述符,这是打开该文件时返回的一个整数。如上的最后一行文件/dev/initctl,其文件描述符为10。u 表示该文件被打开并处于读取/写入模式,而不是只读 ® 或只写 (w) 模式。同时还有大写 的W 表示该应用程序具有对整个文件的写锁。该文件描述符用于确保每次只能打开一个应用程序实例。初始打开每个应用程序时,都具有三个文件描述符,从 0 到 2,分别表示标准输入、输出和错误流。所以大多数应用程序所打开的文件的 FD 都是从 3 开始。与 FD 列相比,Type 列则比较直观。文件和目录分别称为 REG 和 DIR。而CHR 和 BLK,分别表示字符和块设备;或者 UNIX、FIFO 和 IPv4,分别表示 UNIX 域套接字、先进先出 (FIFO) 队列和网际协议 (IP) 套接字。

lsof 常见的用法是查找应用程序打开的文件的名称和数目。可用于查找出某个特定应用程序将日志数据记录到何处,或者正在跟踪某个问题。例如,linux限制了进程能够打开文件的数目。通常这个数值很大,所以不会产生问题,并且在需要时,应用程序可以请求更大的值(直到某个上限)。如果你怀疑应用程序耗尽了文件描述符,那么可以使用 lsof 统计打开的文件数目,以进行验证。lsof语法格式是:

lsof [options] filename常用的参数列表:

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

lsof -a 表示两个参数都必须满足时才显示结果

lsof -c string   显示COMMAND列中包含指定字符的进程所有打开的文件

lsof -u username  显示所属user进程打开的文件

lsof -g gid 显示归属gid的进程情况

lsof +d /DIR/ 显示目录下被进程打开的文件

lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长

lsof -d FD 显示指定文件描述符的进程

lsof -n 不将IP转换为hostname,缺省是不加上-n参数

lsof -i 用以显示符合条件的进程情况

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

46 --> IPv4 or IPv6

protocol --> TCP or UDP

hostname --> Internet host name

hostaddr --> IPv4地址

service --> /etc/service中的 service name (可以不只一个)

port --> 端口号 (可以不只一个)

例如: 查看22端口现在运行的情况

# lsof -i :22

COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME

sshd    1409 root    3u  IPv6   5678       TCP *:ssh (LISTEN)

查看所属root用户进程所打开的文件类型为txt的文件:

# lsof -a -u root -d txt

COMMAND    PID USER  FD      TYPE DEVICE    SIZE    NODE NAME

init       1    root txt       REG    3,3   38432 1763452 /sbin/init

mingetty  1632 root txt       REG    3,3   14366 1763337 /sbin/mingetty

mingetty  1633 root txt       REG    3,3   14366 1763337 /sbin/mingetty

mingetty  1634 root txt       REG    3,3   14366 1763337 /sbin/mingetty

mingetty  1635 root txt       REG    3,3   14366 1763337 /sbin/mingetty

mingetty  1636 root txt       REG    3,3   14366 1763337 /sbin/mingetty

mingetty  1637 root txt       REG    3,3   14366 1763337 /sbin/mingetty

kdm        1638 root txt       REG    3,3  132548 1428194 /usr/bin/kdm

X          1670 root txt       REG    3,3 1716396 1428336 /usr/bin/Xorg

kdm        1671 root txt       REG    3,3  132548 1428194 /usr/bin/kdm

startkde  2427 root txt       REG    3,3  645408 1544195 /bin/bash

... ...

linux查看信息文件,lsof---Linux查看文件信息的强大工具相关推荐

  1. linux 查看进程的lsof,Linux 命令神器:lsof 入门

    lsof是系统管理/安全的尤伯工具.我大多数时候用它来从系统获得与网络连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步.将这个工具称之为lsof真实名副其实,因为它是指"列出打开文 ...

  2. lsof 一切皆文件

    lsof 一切皆文件 Docs » 工具参考篇 » 3. lsof 一切皆文件 Docs » 工具参考篇 » 3. lsof 一切皆文件 Edit on GitHub 3. lsof 一切皆文件¶ l ...

  3. lsof Linux

    LSOF是针对Unix的诊断和分析工具,它能显示出由系统里正在运行的进程所打开的文件,也能显示出每一个进程的通讯socket. lsof 简介lsof(list open files)是一个列出当前系 ...

  4. Linux Performance Analysis and Tools(Linux性能分析和工具)

    摘自:http://my.oschina.net/greki/blog/336429 首先来看一张 图:  上面这张神一样的图出自国外一个Lead Performance Engineer(Brend ...

  5. 19秋计算机应用基础在线作业2,计算机应用基础19秋在线作业2 Windows 下能浏览并管理文件 驱动器及网络连接的强大工具是...

    1.Evaluation Warning: The document was created with Spire.Doc for .NET.计算机应用基础19秋在线作业21 单选题1 Windows ...

  6. linux常用命令 打开文件,【Linux】常用命令 lsof查看打开的文件

    Linux系统把软硬件都抽象成文件,所以通过文件可以追踪到很多重要信息,如读取的配置文件.打开的端口等. 下面是常见的用法: 默认测试文件名为text.txt 1,显示打开text.txt的进程: l ...

  7. linux 反汇编目标文件,用于查看目标文件或可执行文件的组成信息的命令:objdump命令...

    1.功能简介 objdump 命令是 GNU Binutils 二进制工具集的一员,用于查看目标文件或可执行文件的组成信息,以可读的形式打印二进制文件的内容. 2.命令格式 objdump[OPTIO ...

  8. linux查看文件元数据,Linux切换目录、查看目录下的文件、文件类型介绍和查看文件的元数据信息...

    本篇博客介绍几个Linux的基础命令:写的如有不足,还望读者不吝赐教! 切换目录 cd(ChangeDirectory)切换工作目录 语法:cd  [要切换的目录] cd:进入用户的宿主目录(回家) ...

  9. linux 查看文件工具,lsof---Linux查看文件信息的强大工具

    lsof命令是什么?是一个列出当前系统打开文件的工具.被打开的文件可以是1.普通的文件,2.目录 3.网络文件系统的文件,4.字符设 一个日志文件把我绕进去了,处理问题被迫用到了lsof 本来只想看一 ...

最新文章

  1. 什么是安全测试?哪些阶段需要安全测试?
  2. CentOS安装Pure-FTPd+MySQL
  3. python登录代码思路_终于找到一个思路比较清晰的可以模拟登录百度的代码!
  4. iOS10.3的新玩意儿
  5. 程序员修神之路--kubernetes是微服务发展的必然产物
  6. java中ftp文件上传和中文乱码解决
  7. 动画分析步骤“三步曲”
  8. HTML轮播图全宽,jq全兼容自适应宽度图片轮播(新手适用)
  9. php 两位小数包含0,PHP保留两位小数 - osc_8dm0sbbd的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. uniapp---为什么使用uniapp_以及uniapp开发的app展示_使用hbuilderx简单搭建一个uniapp_一次开发_小程序_Android_IOS_快应用通用工作笔记002
  11. 3D呈现transform-style(CSS3)
  12. 35. 内容协商和转码
  13. 暗黑破坏神(DIABLOII 1.11B)BOT 及源代码公开下载
  14. 浅谈能耗分项计量监测系统在某大型公建的应用
  15. 计算机usb速度设置,USB3.0移动硬盘写入速度只有20M/S解决提速方法
  16. 7-8 哈利·波特的考试,7-9 旅游规划,7-10 公路村村通
  17. 跨越OpenGL和D3D的鸿沟[转]
  18. 小程序数据框有重影_微信小程序input重影什么原因?怎么解决重影?
  19. 同余定理在计算机科学的应用,同余定理在小学数学竞赛中的应用
  20. java nanotime单位_java – System.nanoTime()的精度与精度

热门文章

  1. 拍乐云基于AV1的实时视频系统技术实践
  2. 解读腾讯极速高清AR-SR的画质改善机制
  3. WebRTC视频数据流程分析
  4. 腾讯云前端性能优化大赛火热招募中!
  5. warning: control reaches end of non-void function
  6. Ceph 的数据回填和恢复
  7. leetcode 108. Convert Sorted Array to Binary Search Tree | 108. 将有序数组转换为二叉搜索树(Java)
  8. 左神算法:用一个栈实现另一个栈的排序(Java版)
  9. 数据结构:超好用的数据结构与算法可视化工具(USFCA旧金山大学)
  10. 【Java数据库】CLOB BLOB 在数据库中存入/取出大量文本数据、二进制文件(图片)