• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            lsof,linux和unix下的一個診斷分析工具

            Posted on 2009-04-01 19:51 Prayer 閱讀(541) 評論(0)  編輯 收藏 引用 所屬分類: ShellLINUX/UNIX/AIX
            lsof能顯示出由系統里正在運行的進程所打開的文件,也能顯示出每一個進程的通訊socket.
            下面,lsof的用法總結:
            1、查看文件系統阻塞
            lsof 目錄名 可以查看還有哪些進程在使用這個目錄,例:
            當一個用戶以oracle的身份telnet到服務器,那么用lsof /home/oracle 就可以看到它的進程號.
            [root@vm4 ~]# lsof /home/oracle
            COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
            tnslsnr 2709 oracle cwd DIR 8,3 4096 1087047 /home/oracle
            bash 3827 oracle cwd DIR 8,3 4096 1087047 /home/oracle
            2、搜索打開的網絡連接
            搜索某個ip打開的所有網絡連接:
            我從一個windows客戶端用sqlplus連接服務器,在服務器上可以看到:
            [root@vm4 ~]# lsof
            -i@192.168.5.168
            COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
            sshd 3354 root 3u IPv6 9276 TCP 192.168.2.134:ssh->192.168.5.168:2030 (ESTABLISHED)
            sshd 3356 oracle 3u IPv6 9276 TCP 192.168.2.134:ssh->192.168.5.168:2030 (ESTABLISHED)
            oracle 3860 oracle 13u IPv4 12962 TCP 192.168.2.134:1521->192.168.5.168:2372 (ESTABLISHED)
            其中前2個是telnet的鏈接,第3個是sqlplus的鏈接,端口是2372
            3、尋找本地斷開的打開文件
            lsof +L1
            4、搜索被程序打開的所有文件及打開的文件相關聯進程
            我在windows的機器上sqlplus連接一個linux上面的oracle10g,在linux上面會有一個process作為我的鏈接的server process.
            ps看一下:
            [root@vm4 ~]# ps -ef | grep oracle
            oracle 2709 1 0 20:17 ? 00:00:00 /u01/oracle/product/10.2.0/db_1/bin/tnslsnr LISTENER -inherit
            root 3354 2218 0 20:33 ? 00:00:00 sshd: oracle [priv]
            oracle 3356 3354 0 20:34 ? 00:00:00 sshd:
            [email=oracle@pts/1]oracle@pts/1[/email]
            oracle 3357 3356 0 20:34 pts/1 00:00:00 -bash
            oracle 3390 1 0 20:35 ? 00:00:00 ora_pmon_rawdb
            oracle 3392 1 0 20:35 ? 00:00:00 ora_psp0_rawdb
            oracle 3394 1 0 20:35 ? 00:00:00 ora_mman_rawdb
            oracle 3396 1 0 20:35 ? 00:00:00 ora_dbw0_rawdb
            oracle 3398 1 0 20:35 ? 00:00:00 ora_lgwr_rawdb
            oracle 3400 1 0 20:35 ? 00:00:00 ora_ckpt_rawdb
            oracle 3402 1 0 20:35 ? 00:00:00 ora_smon_rawdb
            oracle 3404 1 0 20:35 ? 00:00:00 ora_reco_rawdb
            oracle 3406 1 0 20:35 ? 00:00:00 ora_cjq0_rawdb
            oracle 3408 1 0 20:35 ? 00:00:01 ora_mmon_rawdb
            oracle 3410 1 0 20:35 ? 00:00:00 ora_mmnl_rawdb
            oracle 3414 1 0 20:35 ? 00:00:00 ora_qmnc_rawdb
            oracle 3420 1 0 20:35 ? 00:00:00 ora_q000_rawdb
            oracle 3422 1 0 20:35 ? 00:00:00 ora_q001_rawdb
            oracle 3464 1 1 20:38 ? 00:00:00 oraclerawdb (LOCAL=NO)
            root 3499 3466 0 20:39 pts/1 00:00:00 grep oracle
            3464就是那個為我的客戶端服務的server process的進程號.用lsof來看看他使用的文件和通訊端口.
            lsof -p 3464
            COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
            oracle 3464 oracle cwd DIR 8,3 4096 1184867 /u01/oracle/product/10.2.0/db_1/dbs
            oracle 3464 oracle rtd DIR 8,3 4096 2 /
            oracle 3464 oracle txt REG 8,3 86175221 551701 /u01/oracle/product/10.2.0/db_1/bin/oracle
            oracle 3464 oracle mem REG 8,3 106441 391214 /lib/ld-2.3.4.so
            oracle 3464 oracle mem REG 8,3 1451681 391215 /lib/tls/libc-2.3.4.so
            oracle 3464 oracle mem REG 8,3 15340 391217 /lib/libdl-2.3.4.so
            oracle 3464 oracle mem REG 8,3 178307 391216 /lib/tls/libm-2.3.4.so
            oracle 3464 oracle mem REG 8,3 93993 391218 /lib/tls/libpthread-2.3.4.so
            oracle 3464 oracle mem REG 8,3 95192 391226 /lib/libnsl-2.3.4.so
            oracle 3464 oracle DEL REG 0,6 163841 /SYSV9a02403c
            oracle 3464 oracle mem CHR 1,5 1608 /dev/zero
            oracle 3464 oracle mem REG 8,3 45816 389426 /lib/libnss_files-2.3.4.so
            oracle 3464 oracle mem REG 8,3 2628 696392 /usr/lib/libaio.so.1.0.1
            oracle 3464 oracle mem REG 8,3 5480533 1188614 /u01/oracle/product/10.2.0/db_1/lib/libnnz10.so
            oracle 3464 oracle mem REG 8,3 98079 1187068 /u01/oracle/product/10.2.0/db_1/lib/libdbcfg10.so
            oracle 3464 oracle mem REG 8,3 70077 1188456 /u01/oracle/product/10.2.0/db_1/lib/libclsra10.so
            oracle 3464 oracle mem REG 8,3 9017903 1185770 /u01/oracle/product/10.2.0/db_1/lib/libjox10.so
            oracle 3464 oracle mem REG 8,3 728411 1188452 /u01/oracle/product/10.2.0/db_1/lib/libocrutl10.so
            oracle 3464 oracle mem REG 8,3 1211519 1188451 /u01/oracle/product/10.2.0/db_1/lib/libocrb10.so
            oracle 3464 oracle mem REG 8,3 854560 1188450 /u01/oracle/product/10.2.0/db_1/lib/libocr10.so
            oracle 3464 oracle mem REG 8,3 8069 1187147 /u01/oracle/product/10.2.0/db_1/lib/libskgxn2.so
            oracle 3464 oracle mem REG 8,3 2365801 1188455 /u01/oracle/product/10.2.0/db_1/lib/libhasgen10.so
            oracle 3464 oracle mem REG 8,3 143485 113871 /u01/oracle/product/10.2.0/db_1/lib/libskgxp10.so
            oracle 3464 oracle 0u CHR 1,3 1607 /dev/null
            oracle 3464 oracle 1u CHR 1,3 1607 /dev/null
            oracle 3464 oracle 2u CHR 1,3 1607 /dev/null
            oracle 3464 oracle 3r REG 0,1 955 34 /init
            oracle 3464 oracle 4r CHR 1,3 1607 /dev/null
            oracle 3464 oracle 5r CHR 1,3 1607 /dev/null
            oracle 3464 oracle 6r CHR 1,3 1607 /dev/null
            oracle 3464 oracle 7r CHR 1,3 1607 /dev/null
            oracle 3464 oracle 8r CHR 1,5 1608 /dev/zero
            oracle 3464 oracle 9r REG 8,3 834560 568806 /u01/oracle/product/10.2.0/db_1/rdbms/mesg/oraus.msb
            oracle 3464 oracle 10u CHR 162,10 5795 /dev/raw/raw10
            oracle 3464 oracle 11u CHR 162,6 5682 /dev/raw/raw6
            oracle 3464 oracle 12r REG 8,3 584704 568815 /u01/oracle/product/10.2.0/db_1/rdbms/mesg/orazhs.msb
            oracle 3464 oracle 13u IPv4 9944 TCP 192.168.2.134:1521->192.168.5.168:2057 (ESTABLISHED)
            oracle 3464 oracle 14r REG 8,3 834560 568806 /u01/oracle/product/10.2.0/db_1/rdbms/mesg/oraus.msb
            其中:
            oracle 3464 oracle 13u IPv4 9944 TCP 192.168.2.134:1521->192.168.5.168:2057 (ESTABLISHED)
            說明了這個server process 這在用tcpip鏈接我機器的2057端口.
            其它信息表明了他所使用的文件.
            5、 其它使用命令
            -c c 顯示出以字母 c開頭進程現在打開的文件
            例:顯示以init進程現在打開的文件
            [root@vm4 ~]# lsof -c init
            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 32684 324537 /sbin/init
            init 1 root mem REG 8,3 106441 391214 /lib/ld-2.3.4.so
            init 1 root mem REG 8,3 1451681 391215 /lib/tls/libc-2.3.4.so
            init 1 root mem REG 8,3 53736 389497 /lib/libsepol.so.1
            init 1 root mem REG 8,3 56320 391229 /lib/libselinux.so.1
            init 1 root 3r REG 0,1 955 34 /init
            init 1 root 10u FIFO 0,13 1094 /dev/initctl
            更具體更詳細的信息參考:
            man lsof
            http://chinaunix.net/jh/11/591703.html


            本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/16009/showart_102936.html
            久久久久综合国产欧美一区二区| 国内精品伊人久久久久777| 久久精品人人做人人爽电影蜜月| 青青草原精品99久久精品66| 色综合久久无码中文字幕| 国产精品视频久久| 伊人久久大香线蕉综合热线| 久久夜色精品国产噜噜噜亚洲AV| 97久久精品人人澡人人爽| 狠狠色婷婷久久综合频道日韩| 99久久免费国产精精品| 人人狠狠综合88综合久久| 国产Av激情久久无码天堂| 日韩久久无码免费毛片软件| AAA级久久久精品无码片| 色综合久久中文字幕综合网| 91精品国产综合久久婷婷| 中文字幕无码久久久| 中文字幕亚洲综合久久2| 亚洲av日韩精品久久久久久a| 久久久久亚洲AV无码专区网站| 久久精品国产亚洲av麻豆色欲| 久久一区二区三区免费| 国产一级持黄大片99久久| 婷婷五月深深久久精品| 久久亚洲中文字幕精品一区四| 久久精品国产亚洲av日韩| 精品久久久无码人妻中文字幕| 久久最新免费视频| 国产精品综合久久第一页| 国产精品久久波多野结衣| 狠狠色婷婷久久一区二区三区| 伊人色综合久久天天人守人婷| 久久久久亚洲?V成人无码| 亚洲国产精久久久久久久| 久久久婷婷五月亚洲97号色| 亚洲色欲久久久综合网 | 亚洲级αV无码毛片久久精品| 久久黄视频| 久久久久亚洲AV综合波多野结衣| 久久精品亚洲福利|