您的位置:首页 > 职场人生

lsof命令的常用方法总结

2010-04-19 15:00 351 查看
(1) lsof 文件名 显示占用了指定文件的进程
[root@cacti test]# lsof /var/log/mysql.log
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mysqld 14668 mysql 1u REG 3,3 1976 6475578 /var/log/mysql.log
mysqld 14668 mysql 2u REG 3,3 1976 6475578 /var/log/mysql.log
(2) lsof -i :端口 查看指定端口运行的程序和建立的连接
[root@cacti apache]# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
httpd 1125 daemon 3u IPv6 9200 TCP *:http (LISTEN)
httpd 3608 daemon 3u IPv6 9200 TCP *:http (LISTEN)
httpd 5008 root 3u IPv6 9200 TCP *:http (LISTEN)
httpd 7767 daemon 3u IPv6 9200 TCP *:http (LISTEN)
httpd 7770 daemon 3u IPv6 9200 TCP *:http (LISTEN)
httpd 7771 daemon 3u IPv6 9200 TCP *:http (LISTEN)
httpd 24693 daemon 3u IPv6 9200 TCP *:http (LISTEN)
httpd 30472 daemon 3u IPv6 9200 TCP *:http (LISTEN)
httpd 30652 daemon 3u IPv6 9200 TCP *:http (LISTEN)
httpd 31168 daemon 3u IPv6 9200 TCP *:http (LISTEN)
httpd 31754 daemon 3u IPv6 9200 TCP *:http (LISTEN)
[root@cacti apache]#
(3) lsof -c 程序名称 显示指定程序现在占用的文件
[root@cacti apache]# lsof -c mysqld |head -10
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mysqld_sa 4684 root cwd DIR 3,3 4096 4321224 /usr/local/mysql
mysqld_sa 4684 root rtd DIR 3,3 4096 2 /
mysqld_sa 4684 root txt REG 3,3 735004 5069152 /bin/bash
mysqld_sa 4684 root mem REG 3,3 5380 3309887 /usr/lib/gconv/ISO8859-1.so
mysqld_sa 4684 root mem REG 3,3 125736 2945711 /lib/ld-2.5.so
mysqld_sa 4684 root mem REG 3,3 1597968 2945712 /lib/libc-2.5.so
mysqld_sa 4684 root mem REG 3,3 16428 2945713 /lib/libdl-2.5.so
mysqld_sa 4684 root mem REG 3,3 46680 2943401 /lib/libnss_files-2.5.so
mysqld_sa 4684 root mem REG 3,3 13084 2945736 /lib/libtermcap.so.2.0.8
[root@cacti apache]#
(4) lsof +d 目录 显示目录下被进程占用的文件
[root@cacti apache]# lsof +d /usr/local/
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
mysqld_sa 4684 root cwd DIR 3,3 4096 4321224 /usr/local/mysql
bash 7589 root cwd DIR 3,3 4096 4318820 /usr/local/apache
lsof 7830 root cwd DIR 3,3 4096 4318820 /usr/local/apache
lsof 7831 root cwd DIR 3,3 4096 4318820 /usr/local/apache
[root@cacti apache]#
(5) lsof –p进程号 看指定的进程号占用了哪些文件
[root@cacti apache]# lsof -p 30472 |tail -10
httpd 30472 daemon 1w CHR 1,3 1032 /dev/null
httpd 30472 daemon 2w REG 3,3 90663 4351324 /usr/local/apache/logs/error_log
httpd 30472 daemon 3u IPv6 9200 TCP *:http (LISTEN)
httpd 30472 daemon 4u sock 0,5 9201 can't identify protocol
httpd 30472 daemon 5r FIFO 0,6 9251 pipe
httpd 30472 daemon 6w FIFO 0,6 9251 pipe
httpd 30472 daemon 7w REG 3,3 892095 4351326 /usr/local/apache/logs/access_log
httpd 30472 daemon 8w REG 3,3 90663 4351324 /usr/local/apache/logs/error_log
httpd 30472 daemon 9r 0000 0,10 0 8818373 eventpoll
httpd 30472 daemon 12u unix 0xe81e0e40 8819482 socket
[root@cacti apache]#
(6) lsof +|-r [t] 控制lsof不断重复执行,缺省是15s刷新 -r,lsof会永远不断的执行,直到收到中断信号 +r,lsof会一直执行,直到没有档案被显示
(7) lsof -u username 以UID,列出打开的文件
[root@cacti apache]# lsof -u mysql |tail -5
mysqld 4787 mysql 112u unix 0xe6588040 8819476 /tmp/mysql.sock
mysqld 4787 mysql 113u unix 0xd9fc8ac0 8819483 /tmp/mysql.sock
mysqld 4787 mysql 114u REG 3,3 26 4745182 /usr/local/mysql/data/cacti/poller_time.MYD
mysqld 4787 mysql 115u unix 0xe6588c80 8945697 /tmp/mysql.sock
mysqld 4787 mysql 116u unix 0xe6588740 8945734 /tmp/mysql.sock
[root@cacti apache]#
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  命令 职场 休闲 lsof