lsof命令的用法
lsof被称为unix/linux 调试的瑞士军刀,一般root用户才能执行lsof命令,普通用户可以看见/usr/sbin/lsof命令,但是普通用户执行会显示“permission denied” ,其具体用法如下:
1lsof abc.txt 显示开启文件abc.txt的进程
2lsof -i :22 知道22端口现在运行什么程序
3lsof -c abc 显示abc进程现在打开的文件
4lsof -g gid 显示归属gid的进程情况
5lsof +d /usr/local/ 显示目录下被进程开启的文件
6lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
7lsof -d 4 显示使用fd为4的进程
8lsof -i 用以显示符合条件的进程情况
列出所有网络连接:
1# lsof -i
lsof的-i选项可以列出所有打开了网络套接字(TCP和UDP)的进程。
列出所有TCP网络连接
1# lsof -i tcp
也可以为-i选项加上参数,比如tcp,tcp选项会强制lsof只列出打开TCP sockets的进程。
列出所有UDP网络连接
1# lsof -i udp
同样udp让lsof只列出使用UDP socket的进程。语法:
1# lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
246 --> IPv4 or IPv6
3protocol --> TCP or UDP
4hostname --> Internet host name
5hostaddr --> IPv4位置
6service --> /etc/service中的 service name (可以不只一个)
7port --> 端口号 (可以不只一个)
8例子: TCP:25 - TCP and port 25
9@1.2.3.4 - Internet IPv4 host address 1.2.3.4
10[email protected]:ftp - TCP protocol hosthaha.ks.edu.tw service name:ftp
lsof -n 不将IP转换为hostname,缺省是不加上-n参数
lsof -i [email protected]:ftp -n
lsof -p 12 看进程号为12的进程打开了哪些文件
lsof +|-r [t] 控制lsof不断重复执行,缺省是15s刷新
-r,lsof会永远不断的执行,直到收到中断信号
+r,lsof会一直执行,直到没有档案被显示
不断查看目前ftp连接的情况:
lsof -i [email protected]:ftp -r
lsof -s 列出打开文件的大小,如果没有大小,则留下空白
lsof -u username 以UID,列出打开的文件
1# lsof -u ucsp
-u选项限定只列出所有被用户ucsp打开的文件,你可以通过逗号指定多个用户:
1# lsof -u sms,root (该条也可使用lsof -u sms -u root)
这条命令会列出所有sms和root用户打开的文件。
找到某个用户的所有网络连接,使用-a将-u和-i选项组合可以让lsof列出某个用户的所有网络行为。
1# lsof -a -u hacker -i
列出所有NFS(网络文件系统)文件,这个参数很好记,-N就对应NFS。
1# lsof -N
列出所有UNIX域Socket文件
1# lsof -U
这个选项也很好记,-U就对应UNIX。
列出所有对应某个组id的进程
1# lsof -g 1234
复合查询(OR)被打开文件信息
1#lsof -u nobody -c httpd
复合查询(AND)被打开文件信息
1#lsof -a -u root -c httpd
查看除root之外所有用户的被打开文件
1#lsof -u ^root
查看具体进程PID的被打开文件
1#lsof -p 10101
2#lsof -p 10101,10102,10103
lsof在实际操作中的一个重要应用:查看那些已经删除但仍被某个进程占用的文件。(该状况下会出现空间得不到释放的问题)当你的磁盘空间爆满时,而又发现文件所占空间并未达到磁盘上限时可以使用命令lsof |grep deleted命令查看下那些已被删除但仍未被释放的文件,如下图:
发现该情况时可通过两个方法解决问题。
一、查看占用该文件的进程,杀掉该进程,文件被释放,空间也就释放了。
二、但遇到僵死进程时, kill或kill -9命令是无法结束该进程的,只有重启服务器,杀死进程,空间也就自己释放了。
所以,平时我们在删除文件时,能使用清空命令而不用删除时,尽量使用清空命令。如:echo ” “>a.out,这样就将a.out文件的内容清空了。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/lsof/176.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.