• lsof命令


     

      lsof, LiSt Opened Files, 列出打开的文件, 听起来很简单的样子. 但想*nix中很多其他工具一样, lsof把这件简单的事情做到了炉火纯青. 因为Unix认为”一切皆文件”, 那么”打开的文件”就不仅仅是传统意义上打开的文件了, 还可以是网络/Unix域套接字, 匿名/具名管道, 共享库文件, 目录文件, 设备文件等等. 很多场景下, 查看进程或系统打开的文件会给调试带来极大的帮助. 下面简单地介绍lsof常被使用的功能选项.

    • lsof : 简单地执行lsof会列出当前系统中所有被打开的文件, 但为了看到完整的信息, 通常需要具有root权限; 
    • lsof -u dutor : 列出用户dutor打开的文件, 可指定多个用户, 默认是OR的关系; 
    • lsof -c tair : 列出名称以tair开头的进程打开的文件, c for command, 可指定多个; 
    • lsof -c /^t.*r$/ : 列出名称以t开头, r结尾的进程打开的文件; 
    • lsof -p 12315 : 列出进程号为12315的进程打开的文件, 可指定多个; 
    • lsof server.log : 列出打开server.log文件的进程, 可指明多个文件; 
    • lsof . : 列出打开当前目录的进程; 
    • lsof +D . : 递归地列出当前目录中被打开的文件, 当然也可以lsof | grep `pwd`; 
    • lsof -i : 列出打开的套接字; 
    • lsof -i tcp : 列出打开的tcp套接字; 
    • lsof -i :5198 : 列出打开5198端口的进程; 
    • lsof -i :ssh : 列出打开22端口的进程; 
    • lsof -i tcp:5198 : 列出打开5198号tcp端口的进程; 
    • lsof -U  : 列出打开Unix域套接字的进程; 
    • lsof -d 0-2 : 列出在0到2文件描述符上打开文件的进程; 
    • lsof -d mem : 列出打开映射文件的进程; 
    • lsof -d txt : 列出打开的可执行文件. 

      还有其他一些非常有用的选项, 可以对lsof的行为进行控制.

    • lsof -a: 上述功能性选项可以组合使用, 但默认采用OR逻辑列出, -a选项令lsof使用AND逻辑;
    • lsof -t: 只列出进程号, 可以借此得到特定的进程列表, 以方便对这些进程的自动处理, 比如kill `lsof -t -i :5198`会杀死所有打开5198端口的进程;
    • lsof -r [seconds]: -r选项可以让lsof以一定的时间间隔连续执行, 在监视文件/进程时会非常实用.

      这只是一个实用的不完全选项的罗列, 如果你知道其他非常实用的选项, 还望留言分享之.

    祝好

  • 相关阅读:
    函数名的应用/列表推导式
    装饰器/内置函数
    函数的基础
    文件的改的操作
    常用str
    python 定时器 timer QTimer
    Python 2.7.16 pyinstaller3.0 生成exe可执行文件
    python 根据excel单元格内容获取该单元格所在的行号
    python 实现仪器LAN口通信(FLUKE 8846)
    VS2019 MSB8041 MSB8042 Error
  • 原文地址:https://www.cnblogs.com/olenji/p/4756494.html
Copyright © 2020-2023  润新知