简介:
lsof(list open files)是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件(来源百度百科)。
lsof在查找进程占用的那些文件或pid号由那些文件发起的等方面作用很大;尤其在Linux系统被黑后的溯源工作上绝对可以称之为一个重量级的命令。
格式详解:
[root@freeboy ~]# lsof -c httpd | head -5 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME httpd 6083 root cwd DIR 8,2 4096 2 / httpd 6083 root rtd DIR 8,2 4096 2 / httpd 6083 root txt REG 8,3 355232 136356 /usr/sbin/httpd httpd 6083 root mem REG 8,3 83088 667789 /usr/lib64/php/modules/zip.so
lsof输出各列信息的意义如下:
COMMAND:进程的名称 PID:进程标识符 USER:进程所有者 FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等 TYPE:文件类型,如DIR、REG等 DEVICE:指定磁盘的名称 SIZE:文件的大小 NODE:索引节点(文件在磁盘上的标识) NAME:打开文件的确切名称
常用参数:
NAME lsof - list open files SYNOPSIS lsof [ -?abChlnNOPRtUvVX ] [ -A A ] [ -c c ] [ +c c ] [ +|-d d ] [ +|-D D ] [ +|-e s ] [ +|-f [cfgGn] ] [ -F [f] ] [ -g [s] ] [ -i [i] ] [ -k k ] [ +|-L [l] ] [ +|-m m ] [ +|-M ] [ -o [o] ] [ -p s ] [ +|-r [t[m]] ] [ -s [p:s] ] [ -S [t] ] [ -T [t] ] [ -u s ] [ +|-w ] [ -x [fl] ] [ -z [z] ] [ -Z [Z] ] [ -- ] [names]
lsof dirname//查看哪些用户打开了这个目录
lsof -u username //查看用户打开了哪些文件
lsof -g gid//查看归属gid的进程情况
lsof -i:22//查看22端口由哪些进程发起
lsof -c httpd// 查看httpd进程打开了哪些文件
lsof -p 22166 // 查看进程号为22166的进程打开了哪些文件