明明白白你的Linux服務器——網絡篇(3)

 7、使用lsof查看文件信息vim

在unix裏面,一切皆文件;而Linux秉承了這一特性,將unix下的工具lsof移植過來得很成功。lsof能夠列出被進程所打開的文件的信息。bash

被打開的文件能夠是網絡

1.普通的文件socket

2.目錄  tcp

3.網絡文件系統的文件ide

4.字符設備文件  函數

5.(函數)共享庫  工具

6.管道,命名管道 url

7.符號連接spa

8.底層的socket字流。網絡socket,unix域名socket,用得比較多的用法是lsof -i:端口號,列出誰在使用某個端口,例如:lsof -i :3306,我喜歡用此用法來判斷服務到底有沒有正常啓用。

8、使用fuser查看和殺死相關進程

與lsof –i的用法相法,若是我想查找佔用3306端口的程序,則用fuser –n tcp -v 8080,另外,fuser的其它功能也是很強大的,我經常使用的它的兩個功能:查看我須要的進程和我要殺死我查到的進程(撫琴煮酒是通常用來解決device is busy的問題)

好比當你想umount光驅的時候,結果系統提示你設備正在使用或者正忙,但是你又找不到到底誰使用了他。這個時候fuser可派上用場了。

  
  
  
  
  1. [root@lancy sbin]# eject  
  2. umount: /media/cdrom: device is busy  
  3. umount: /media/cdrom: device is busy  
  4. eject: unmount of `/media/cdrom' failed  
  5.  
  6. [root@lancy sbin]# fuser /mnt/cdrom  
  7. /mnt/cdrom: 4561c 5382c  
  8.  
  9. [root@lancy sbin]# ps -ef |egrep '(4561|5382)' |grep -v grep  
  10. root 4561 4227 0 20:13 pts/1 00:00:00 bash  
  11. root 5382 4561 0 21:42 pts/1 00:00:00 vim Autorun.inf 

示例中,我想彈出光驅,系統告訴我設備忙着,因而採用fuser命令,參數是你文件或scoket,fuser將查出那些使用了他。4561c,5382c表示目前用兩個進程在佔用着/mnt/cdrom,分別是4561,5382,進程ID後的字母表示佔用資源的方式。

相關文章
相關標籤/搜索