| linux查看打开文件的命令–lsof |
lsof可以列出某个进程打开的所有文件信息。打开的文件可能是普通的文件,目录,NFS文件,块文件,字符文件,共享库,常规管道,明明管道,符号链 接,Socket流,网络Socket,UNIX域Socket,以及其它更多。因为Unix系统中几乎所有东西都是文件,你可以想象lsof该有多有用。 用法: 列出有所打开的文件: #losf 找出谁在使用文件 #lsof /root/.bashrc 递归查找某个目录中所有打开的文件 # lsof +D /usr/lib 加上+D参数,lsof会对指定目录进行递归查找,注意这个参数要比grep版本慢 # lsof | grep '/usr/lib' 之所以慢是因为+D首先查找所有的文件,然后一次性输出 列出某个用户代开的文件 #lsof -u root 列出除root用户外的所有用户打开的文件 # lsof -u ^root 列出某个程序打开的所有文件 #lsof -c httpd 可以只写进程的头几个字母 #lsof -c ht 这就会列出以ht开头的进程打开的文件 列出某个pid对应的进程所打开的文件 #lsof -p 489 列出所有网络连接 #lsof -i lsof的-i选项可以列出所有打开了网络套接字(TCP和UDP)的进程 列出所有tcp网络连接 #lsof -i tcp 找出某个端口的进程 #lsof -i :25 找出某个tcp端口的进程 #lsof -i tcp:80 找到某个用户的所有网络连接 # lsof -a -u hacker -i -a参数可以将多个选项的组合条件由或变为与,使用-a将-u和-i选项组合可以让lsof列出某个用户的所有网络行为 输出使用某些资源的进程pid # lsof -t -i -t选项输出进程的PID,你可以将它和-i选项组合输出使用某个端口的进程的PID,下面的命令将会杀掉所有使用网络的进程: # kill -9 `lsof -t -i` 循环列出文件 # lsof -r 1 -r选项让lsof可以循环列出文件直到被中断,参数1的意思是每秒钟重复打印一次,这个选项最好同某个范围比较小的查询组合使用,比如用来监测网络活动: # lsof -r 1 -u john -i -a 也许下面的会对您有所帮助: Linux Centos系统负荷详细说明教程? http://www.34514.cn/style/info/shownews.asp?id=646 Linux centos系统时间和时区的修改和设置? http://www.34514.cn/style/info/shownews.asp?id=632 Linux CentOS 注销在线用户相关操作? http://www.34514.cn/style/info/shownews.asp?id=625 |