Chinaunix首页 | 论坛 | 博客
  • 博客访问: 158741
  • 博文数量: 42
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 377
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-01 11:18
个人简介

虔诚运维

文章分类

全部博文(42)

文章存档

2014年(42)

我的朋友

分类: LINUX

2014-07-11 16:25:22

lsof简介

相信大家都知道*nix平台的lsof命令了。lsof用于列出,当前系统中处于打开状态的文件。此处的文件,可以是普通的文件,目录,NFS文件,块文件,字符文件,符号链接,Socket描述符等等。以下介绍lsof的几个特殊用法:

lsof特殊用法

找出谁在使用某个特定文件

lsof /path/to/file1 /path/to/file2 

递归查找某个目录中所有打开的文件

lsof +D /path 

查找某个用户打开的文化

 lsof -u user
    lsof -u lisi,wangwu 

查找某个程序打开的所有文件

lsof -c program 

列出所有由某个用户或某个进程打开的文件

lsof -u lisi -c nginx 

列出所有由一个用户与某个进程打开的文件

lsof -a -u lisi -c bash 

列出除root用户外的所有用户打开的文件

lsof -u ^root 

注意root前面的^符号,它执行取反操作

列出所有由某个或某些Pid对应的进程打开的文件

lsof -p 220,110,400 

列出所有进程打开的文件除了某个pid的

lsof -p ^250 

列出所有网络连接

lsof -i 

列出所有TCP网络连接

lsof -i tcp 

列出所有UDP网络连接

lsof -i udp 

找到使用某个端口的进程

 lsof -i :80
    lsof -i :smtp 

第二个命令使用了/etc/services中制定的端口名称来代替端口号

找到使用某个udp端口号的进程

lsof -i udp:53 

命令中的协议标识有多种。如tcp等

找到某个用户的所有网络连接

lsof -a -u lisi -i 

列出所有NFS(网络文件系统)文件

lsof -N 

列出所有UNIX域Socket文件

lsof -U 

列出所有对应某个g组id的进程

lsof -g 1234 

列出所有与某个描述符关联的文件

 lsof -d 3
    lsof -d 0-2 

第二个命令指定了描述符的范围

列出所有内存映射文件

lsof -d mem 

列出所有加载在内存中并正在执行的进程

lsof -d txt 

输出使用某些资源的进程pid

lsof -t -i 

杀掉所有使用网络的进程

kill -9 `lsof -t -i` 

循环列出文件

 lsof -r 2
    lsof -r 2 -u lisi -i -a 

-r选项用于循环列出文件直到被中断。参数2的意思是每秒钟重复打印一次。



转载自 

阅读(1347) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~