• <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 閱讀(532) 評論(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
            国产精品久久久久久福利漫画 | 一级做a爰片久久毛片毛片| 久久久久久夜精品精品免费啦 | 波多野结衣久久一区二区| 少妇被又大又粗又爽毛片久久黑人 | 一级做a爱片久久毛片| 久久se精品一区精品二区国产| 亚洲国产精品成人久久蜜臀 | 久久99精品久久只有精品| 国产精品久久久久一区二区三区 | 狠狠色婷婷久久一区二区| 久久人妻少妇嫩草AV无码专区 | 青青草原综合久久| 久久久亚洲裙底偷窥综合| 成人免费网站久久久| 久久精品国产男包| 国内精品久久久久久久97牛牛| 国产精品久久久久乳精品爆| 一本一道久久综合狠狠老| 精品久久久久久无码人妻蜜桃| 久久国产免费直播| 久久青青草原精品国产软件| 97精品国产91久久久久久| 久久婷婷色综合一区二区| 狠狠色伊人久久精品综合网 | 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 欧美牲交A欧牲交aⅴ久久| 久久精品这里热有精品| 欧美与黑人午夜性猛交久久久| 久久免费看黄a级毛片| 久久婷婷人人澡人人| 性欧美大战久久久久久久久 | 伊人热热久久原色播放www| 久久91精品国产91久久户| 久久久久亚洲av综合波多野结衣| 久久久综合九色合综国产| 久久久久成人精品无码中文字幕 | 精品国产青草久久久久福利| 久久久久国产亚洲AV麻豆| 国产精品美女久久久久网| 国产麻豆精品久久一二三|