• <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
            久久久久人妻一区精品| 久久性精品| 国产亚洲色婷婷久久99精品| 久久综合给合久久国产免费| 91麻精品国产91久久久久| 色诱久久av| 亚洲一区中文字幕久久| 狠狠色丁香久久婷婷综合蜜芽五月| 久久精品国产亚洲AV嫖农村妇女| 成人a毛片久久免费播放| 综合人妻久久一区二区精品 | 91精品国产高清久久久久久国产嫩草| 精品人妻伦一二三区久久| 中文精品99久久国产| 日韩亚洲欧美久久久www综合网| 开心久久婷婷综合中文字幕| 99久久久精品| 亚洲va中文字幕无码久久不卡| 久久国产视屏| 婷婷综合久久狠狠色99h| 亚洲精品国产美女久久久| 久久久久女教师免费一区| 国产AⅤ精品一区二区三区久久| 亚洲精品乱码久久久久久蜜桃图片 | 久久久无码精品亚洲日韩蜜臀浪潮| 韩国三级中文字幕hd久久精品| 久久国产精品99精品国产| 亚洲伊人久久成综合人影院 | 2021最新久久久视精品爱| 91久久精品国产91性色也| 久久不见久久见免费视频7| 99蜜桃臀久久久欧美精品网站| 亚洲欧美精品一区久久中文字幕| 国内精品久久久久久久久电影网| 久久777国产线看观看精品| 久久久久久人妻无码| 亚洲综合精品香蕉久久网| 久久午夜无码鲁丝片秋霞| 99久久免费国产精品特黄| 久久久久久免费视频| 免费一级欧美大片久久网|