lsof 功能使用详解
1、lsof 简介
lsof 是 Linux 下的一个非常实用的系统级的监控、诊断工具。
它的意思是 List Open Files,很容易你就记住了它是 “ls + of”的组合~
它可以用来列出被各种进程打开的文件信息,记住:linux 下 “一切皆文件”,
包括但不限于 pipes, sockets, directories, devices, 等等。
因此,使用 lsof,你可以获取任何被打开文件的各种信息。
只需输入 lsof 就可以生成大量的信息,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。
lsof 的示例输出:
2、lsof 常用用法
2.1 监控打开的文件、设备
查看文件、设备被哪些进程占用
2.2 监控文件系统
指定目录、挂载点,可以看到有哪些进程打开了其下的文件:
这在 umount 某个文件系统失败时非常有用(通常会报该 FS is busy)。
列出某个目录(挂载点 如 /home 也行)下被打开的文件:
列出被指定进程名打开的文件:
2.3 监控进程
指定进程号,可以查看该进程打开的文件:
当你想要杀掉某个用户所有打开的文件、设备,你可以这样:
此处 -t 的作用是单独的列出 进程 id 这一列。
关于杀死进程的 4 种方式,请参考:
http://www.thegeekstuff.com/2009/12/4-ways-to-kill-a-process-kill-killall-pkill-xkill/
2.4 监控网络
查看指定端口有哪些进程在使用(lsof -i 列出所有的打开的网络连接):
列出被某个进程打开所有的网络文件:
或者
列出所有 tcp、udp 连接:
列出所有 NFS 文件:
查看指定网口有哪些进程在使用:
3、更多使用技巧
3.1 监控用戶
查看指定用戶打开的文件(lsof -u ^lakshmanan 可以排除某用户):
3.2 监控应用程序
查看指定程序打开的文件:
4、命令模式技巧
4.1 组合逻辑查询条件
只有多个查询条件都满足, 用 "-a" 参数,默认是 -o 。
4.2 lsof 命令的重复执行模式:
基于给定的参数延时多少秒重复执行 lsof
+r 表示 当没有文件被打开的时候,repeat mode 将自行结束。
-r 表示 不管文件是否存在或者被打开,它都将执行,直到你中断它。
每个循环的输出使用 ‘=======’ 做分隔符,你也可以用 ‘-r’ | ‘+r’ 指定延时时间。
以上输出是前 5 秒没有输出,然后 “inita.sh” 启动后,开始有了输出。
5、最后的技巧
关于磁盘空间告警 df -h --max=1 与 du -hx --max=1 显示不一致的问题,
最常见的的还是下面这种情况:
lsof|grep -i delete
看看被删除的文件:有些删了文件,但是进程没 reload,那些空间还是占用的,你可以理解为类似 windows 下的进程句柄没释放的概念吧~ 只是 windows 下如果有文件被进程使用,你一般是删不掉的,而 linux 虽然不做删除限制,但却要等到进程使用完文件才能完全释放,以防止进程奔溃,这是操作系统对资源的管理差异吧~
例如 nginx 会有很多临时文件占用了 /tmp 目录,删掉后,依然占用着空间,
此时你可以:
pkill -9 nginx && /etc/init.d/nginx restart
好吧,本文到此结束了,关于 lsof 还有很多很多,不过哥常用、知道的就这些了,哥也只能帮你到这儿了,
如果你还需要其它的内容,请自行 google 吧,骚年。。。
6、refer:
使用 lsof 查找打开的文件
http://www.ibm.com/developerworks/cn/aix/library/au-lsof.html
15 Linux lsof Command Examples (Identify Open Files)
http://www.thegeekstuff.com/2012/08/lsof-command-examples/
实用的系统工具之 lsof
http://www.ylinux.org/forum/t/276
转载于:https://blog.51cto.com/410617/1878110
lsof 功能使用详解相关推荐
- python画简单的图形的代码-Python实现画图软件功能方法详解
概述 虽然Python的强项在人工智能,数据处理方面,但是对于日常简单的应用,Python也提供了非常友好的支持(如:Tkinter),本文主要一个简单的画图小软件,简述Python在GUI(图形用户 ...
- 17个之多!Windows Vista各版本功能区别详解
Vista 开始全球同步上市,版本达17个之多. Windows Vista各版本功能区别详解 : http://digi.it.sohu.com/2006 ...
- [系统安全] 四十五.APT系列(10)Metasploit后渗透技术信息收集、权限提权和功能模块详解
您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...
- php怎么自定义设置打印区域,JavaScript_jQuery实现区域打印功能代码详解,使用CSS控制打印样式,需要设 - phpStudy...
jQuery实现区域打印功能代码详解 使用CSS控制打印样式,需要设置样式media="print",并且将页面中不需要打印的元素的样式display属性设置为none.如DEMO ...
- android搜索功能xml,Android_Android ActionBar搜索功能用法详解,本文实例讲述了Android ActionBar - phpStudy...
Android ActionBar搜索功能用法详解 本文实例讲述了Android ActionBar搜索功能用法.分享给大家供大家参考,具体如下: 使用ActionBar SearchView时的注意 ...
- python实现文本编辑器_Python实现文本编辑器功能实例详解
这篇文章主要介绍了Python实现的文本编辑器功能,结合实例形式详细分析了基于wxpython实现文本编辑器所需的功能及相关实现技巧,需要的朋友可以参考下 本文实例讲述了Python实现的文本编辑器功 ...
- python画图代码大全-Python实现画图软件功能方法详解
概述 虽然Python的强项在人工智能,数据处理方面,但是对于日常简单的应用,Python也提供了非常友好的支持(如:Tkinter),本文主要一个简单的画图小软件,简述Python在GUI(图形用户 ...
- js购物车功能php,使用JS实现购物车功能步骤详解
这次给大家带来使用JS实现购物车功能步骤详解,使用JS实现购物车功能的注意事项有哪些,下面就是实战案例,一起来看一下. 我们肯定都很熟悉商品购物车这一功能,每当我们在某宝某东上购买商品的时候,看中了哪 ...
- python画图软件是哪个_Python实现画图软件功能方法详解
Python实现画图软件功能方法详解,按钮,事件,绑定,快捷键,直线 Python实现画图软件功能方法详解 易采站长站,站长之家为您整理了Python实现画图软件功能方法详解的相关内容. 概述 虽然P ...
最新文章
- rem是如何实现自适应布局的
- Struts2+Android (3) 多种方式向服务器发送信息
- 前端一HTML:二十二元素显示方式案例
- 世界围棋人机大战、顶峰对决第二战:围棋世界冠军Lee Sedol(李世石,围棋职业九段)对战Google DeepMind AlphaGo围棋程序,AlphaGo再次胜出!
- php smtp验证,php通过smtp验证登陆
- 硬质合金销售真的有那么难么?
- 随想录(学校研究和公司研发)
- vue中supermap iserver绘制使用的插件安装
- springboot获取客户端发来的数据
- 如何利用用户业务行为画像,做套餐与用户之间个性化智能匹配模型?
- 获取变量数据类型(JS)
- 怎么使用PVS stream Linux
- 小芋头君的知乎 Live 直播-前端开发者成长之路
- java默认字符串排序规则_Java 字符串排序--------请对一组字符串进行排序,字符串由大小写字母和数字组成,需要满足一下比较规则...
- 【常用 JS 插件】jQuery TreeTable 树表格插件
- CentOS安全运维检查命令
- JS获取浏览器UA(User Agent 用户代理)方法
- 分治法 —— 快速排序(递归,迭代,非递归)
- 飞协博携手顺丰速运推出综合物流解决方案
- springboot整合 swagger2
热门文章
- 操作可能会破坏运行时稳定性的解决办法
- 《DSP using MATLAB》示例Example4.2
- Java阻塞队列的实现
- ArcGIS API for Silverlight 入门学习笔记(一)hello world 补充问题
- Java实现简单的在聊天面板中显示emoji
- Eclipse编译时函数报错:Undefined reference to 'pthread_create'
- 树莓派系统的安装、初步配置与远程访问
- 幼儿园调查过程怎么写_幼儿园对孩子的重要性你真的清楚吗?
- (03)两个模型的交集、并集、差集
- mysql 5.6 2002_MySQL错误ERROR 2002 (HY000): Can't connect to local MySQL server