lsof 命令简介
losf 命令可以列出某個(gè)進(jìn)程打開的所有文件信息。打開的文件可能是普通的文件,目錄,NFS文件,塊文件,字符文件,共享庫,常規(guī)管道,明明管道,符號鏈接,Socket流,網(wǎng)絡(luò)Socket,UNIX域Socket,以及其它更多。 1 列出系統(tǒng)上所有打開的文件: [root@rac1 mysql]# lsof | more COMMAND ? ? PID ? ? ?USER ? FD ? ? ?TYPE ? ? ? ? ? ? DEVICE ? ? ? SIZE ? ? ? NODE NAME init ? ? ? ? ?1 ? ? ?root ?cwd ? ? ? DIR ? ? ? ? ? ? ? ?8,3 ? ? ? 4096 ? ? ? ? ?2 / init ? ? ? ? ?1 ? ? ?root ?rtd ? ? ? DIR ? ? ? ? ? ? ? ?8,3 ? ? ? 4096 ? ? ? ? ?2 / init ? ? ? ? ?1 ? ? ?root ?txt ? ? ? REG ? ? ? ? ? ? ? ?8,3 ? ? ?43496 ? 17727785 /sbin/init ? 2 查看誰在使用指定的文件 [root@rac1 ~]# lsof /tmp/mysql.sock ? ? ? ? ? ? ? ? ? ? ? ? ? ? COMMAND ? PID ?USER ? FD ? TYPE ? ? ? ? ? ? DEVICE SIZE ? ? NODE NAME mysqld ?24319 mysql ? 16u ?unix 0xffff8100918a8c00 ? ? ?44743909 /tmp/mysql.sock ? 3 遞歸查看指定目錄下所有打開的文件 [root@rac1 ~]# ?lsof +D /opt/mysql/ ? COMMAND ? PID ?USER ? FD ? TYPE DEVICE ? ? ? SIZE ? ? NODE NAME mysqld ?24319 mysql ?cwd ? ?DIR ? ?8,3 ? ? ? 4096 19824642 /opt/mysql/data mysqld ?24319 mysql ? ?3u ? REG ? ?8,3 ? ? ? ?152 19824646 /opt/mysql/data/mysql-log-bin.index mysqld ?24319 mysql ? ?4uW ?REG ? ?8,3 4875878400 20283611 /opt/mysql/data/ibdata1 mysqld ?24319 mysql ? ?9uW ?REG ? ?8,3 ? ?5242880 20283612 /opt/mysql/data/ib_logfile0 mysqld ?24319 mysql ? 10uW ?REG ? ?8,3 ? ?5242880 20283613 /opt/mysql/data/ib_logfile1 mysqld ?24319 mysql ? 12w ? REG ? ?8,3 ? ? ?12957 19824652 /opt/mysql/data/slow_query.log ? 4 查看指定用戶打開的所有文件 [root@rac1 ~]# lsof -u oracle COMMAND ? ?PID ? USER ? FD ? TYPE ? ? ? ? ? ? DEVICE ? ? SIZE ? ? NODE NAME nmz ? ? ? 3211 oracle ?cwd ? ?DIR ? ? ? ? ? ? ? ?8,3 ? ? 4096 10813466 /home/oracle nmz ? ? ? 3211 oracle ?rtd ? ?DIR ? ? ? ? ? ? ? ?8,3 ? ? 4096 ? ? ? ?2 / nmz ? ? ? 3211 oracle ?txt ? ?REG ? ? ? ? ? ? ? ?8,3 ? 673908 19398913 /opt/rac/oracle/11.2.0/rac/ccr/bin/nmz nmz ? ? ? 3211 oracle ?mem ? ?REG ? ? ? ? ? ? ? ?8,3 ? 125736 ?2820762 /lib/ld-2.5.so nmz ? ? ? 3211 oracle ?mem ? ?REG ? ? ? ? ? ? ? ?8,3 ?1606808 ?2818065 /lib/libc-2.5.so nmz ? ? ? 3211 oracle ? ?3uW ?REG ? ? ? ? ? ? ? ?8,3 ? ? ? ?0 19398727 /opt/rac/oracle/11.2.0/rac/ccr/hosts/rac1/log/sched.lock nmz ? ? ? 3211 oracle ? ?4w ? REG ? ? ? ? ? ? ? ?8,3 ? ? ?853 19398726 /opt/rac/oracle/11.2.0/rac/ccr/hosts/rac1/log/sched.log nmz ? ? ? 3211 oracle ? ?5r ? REG ? ? ? ? ? ? ? ?8,3 ? ?16896 20906832 /opt/rac/oracle/11.2.0/rac/ccr/mesg/nmzus.msb 注意:^符號,它執(zhí)行取反操作 lsof -u ^oracle 表示除oracle 之外的用戶打開的文件 5 查看某個(gè)程序打開的所有文件 -c選項(xiàng)限定只列出以apache開頭的進(jìn)程打開的文件: root@rac1 shell]# lsof -c mysql COMMAND ? PID ?USER ? FD ? TYPE ? ? ? ? ? ? DEVICE ? ? ? SIZE ? ? NODE NAME mysqld ?24319 mysql ?cwd ? ?DIR ? ? ? ? ? ? ? ?8,3 ? ? ? 4096 19824642 /opt/mysql/data mysqld ?24319 mysql ?rtd ? ?DIR ? ? ? ? ? ? ? ?8,3 ? ? ? 4096 ? ? ? ?2 / mysqld ?24319 mysql ?txt ? ?REG ? ? ? ? ? ? ? ?8,3 ? 45648978 23429121 /usr/sbin/mysqld mysqld ?24319 mysql ?mem ? ?REG ? ? ? ? ? ? ? ?8,3 ? ? 139416 21201203 /lib64/ld-2.5.so mysqld ?24319 mysql ?mem ? ?REG ? ? ? ? ? ? ? ?8,3 ? ?1713160 21201204 /lib64/libc-2.5.so mysqld ?24319 mysql ?mem ? ?REG ? ? ? ? ? ? ? ?8,3 ? ? ?23360 21201206 /lib64/libdl-2.5.so 6 查看某個(gè)用戶與某個(gè)程序打開的文件 lsof -u username -c 進(jìn)程名 ? ?是或的關(guān)系,表示所有由某個(gè)用戶或某個(gè)進(jìn)程打開的文件 lsof -a -u username -c 進(jìn)程名 是與的關(guān)系? 7 查看所有由某個(gè)PID對應(yīng)的進(jìn)程打開的文件 ? 使用 -p 參數(shù)來過濾輸出 [root@rac1 ~]# lsof ?-p 1 COMMAND PID USER ? FD ? TYPE DEVICE ? ?SIZE ? ? NODE NAME init ? ? ?1 root ?cwd ? ?DIR ? ?8,3 ? ?4096 ? ? ? ?2 / init ? ? ?1 root ?rtd ? ?DIR ? ?8,3 ? ?4096 ? ? ? ?2 / init ? ? ?1 root ?txt ? ?REG ? ?8,3 ? 43496 17727785 /sbin/init init ? ? ?1 root ?mem ? ?REG ? ?8,3 ?139416 21201203 /lib64/ld-2.5.so init ? ? ?1 root ?mem ? ?REG ? ?8,3 1713160 21201204 /lib64/libc-2.5.so init ? ? ?1 root ?mem ? ?REG ? ?8,3 ? 23360 21201206 /lib64/libdl-2.5.so init ? ? ?1 root ?mem ? ?REG ? ?8,3 ? 95464 21201216 /lib64/libselinux.so.1 init ? ? ?1 root ?mem ? ?REG ? ?8,3 ?247528 21201215 /lib64/libsepol.so.1 init ? ? ?1 root ? 10u ?FIFO ? 0,17 ? ? ? ? ? ? 1477 /dev/initctl 8 查看網(wǎng)絡(luò)連接 -i 參數(shù)列出所有打開了網(wǎng)絡(luò)套接字(TCP和UDP)的進(jìn)程 ?a 查看tcp 連接 ?b 查看udp 連接 ?c 找到使用某個(gè)端口的進(jìn)程 ? ?# lsof -i :3306 ? ?:3306和-i選項(xiàng)組合可以讓lsof列出占用TCP或UDP的25端口的進(jìn)程。 ? ?d 找到使用某個(gè)udp端口號的進(jìn)程 ? ?# lsof -i udp:53 ?e 可以找到使用某個(gè)tcp端口的進(jìn)程: ? ?# lsof -i tcp:80 ?f 找到某個(gè)用戶的所有網(wǎng)絡(luò)連接 ? ?# lsof -a -u mysql -i ? ?[root@rac1 ~]# lsof -a -u mysql -i ? ?COMMAND ? PID ?USER ? FD ? TYPE ? DEVICE SIZE NODE NAME ? ?mysqld ?24319 mysql ? 11u ?IPv6 48586515 ? ? ? TCP rac1:mysql->rac1:39045 (ESTABLISHED) ? ?mysqld ?24319 mysql ? 14u ?IPv6 44743908 ? ? ? TCP *:mysql (LISTEN) 9 列出所有NFS(網(wǎng)絡(luò)文件系統(tǒng))文件 ? ?# lsof -N ? ?這個(gè)參數(shù)很好記,-N就對應(yīng)NFS。 ? 10 列出所有對應(yīng)某個(gè)組id的進(jìn)程 ? ?# lsof -g 1234 ? ?進(jìn)程組用來來邏輯上對進(jìn)程進(jìn)行分組,這個(gè)例子查找所有PGID為1234的進(jìn)程打開的文件。 11 列出所有與某個(gè)描述符關(guān)聯(lián)的文件 ? ?# lsof -d 2 ? 會列出所有以描述符2打開的文件。 ? ?可以為描述符指定一個(gè)范圍: ? ?# lsof -d 0-2 會列出所有描述符為0,1,2的文件。 ? ?-d選項(xiàng)還支持其它很多特殊值,下面的命令列出所有內(nèi)存映射文件: ? ?# lsof -d mem ? ?txt則列出所有加載在內(nèi)存中并正在執(zhí)行的進(jìn)程: ? ?# lsof -d txt 12 輸出使用某些資源的進(jìn)程pid ? ?# lsof -t -i ? ?-t選項(xiàng)輸出進(jìn)程的PID,你可以將它和-i選項(xiàng)組合輸出使用某個(gè)端口的進(jìn)程的PID,下面的命令將會殺掉所有使用網(wǎng)絡(luò)的進(jìn)程: ? ?# kill -9 `lsof -t -i` 13 ?循環(huán)列出文件 ? # lsof -r 1 ? ?-r選項(xiàng)讓lsof可以循環(huán)列出文件直到被中斷,參數(shù)1的意思是每秒鐘重復(fù)打印一次,這個(gè)選項(xiàng)最好同某個(gè)范圍比較小的查詢組合使用,比如用來監(jiān)測網(wǎng)絡(luò)活動(dòng): ? # lsof -r 1 -u john -i -a
轉(zhuǎn)載于:https://www.cnblogs.com/liang545621/p/7528491.html
總結(jié)
- 上一篇: easyUI创建人员树
- 下一篇: react redux学习之路