十五、free、ps、netstat命令,以及抓包工具tcpdump和tshark

free命令,查看內存。

#free -k 以kb顯示

#free -m 以Mb顯示

#free -g 以Gb顯示

#free -h 以合適大小顯示


free 命令輸出的信息:

真正剩餘的內存是free列的第二行

buffers和cached列的數字分別表示buffers和cached還有多少剩餘

free列的一行數字+buffers列數字

- buffers/cache 反應的是被程序實實在在吃掉的內存

+ buffers/cache 反應的是可以挪用的內存總數


buffers和cached有什麼區別

buffers是指高速緩衝區的大小,是一個空間大小的概念,運行程序常用的數據,在第一次運行時系統會把它們暫時緩存在一個高速的存儲區域,以後再用時就直接從這個區域讀取數據供程序使用,存取這些數據的介質,因其讀寫速度比硬盤和內存要快得多,所以,buffers的大小對電腦運行速度的影響是很大的,但這些數據重啓電腦或關機後就會自動消失。而cached是指緩存的數據,是真正意義上的實在東西,例如你常用的程序,由於一些數據是這些程序運行經常要使用到的,系統就會把它們形成文件,緩存到一個特定的位置,下次你再運行該程序時,就會自動到緩存的位置讀取數據供程序運行使用,存儲這些數據的區域是在電腦的硬盤上,理論上講讀寫速度是不變的,只是節省了尋找這些數據的時間而也,這樣也可間接地提高了電腦的運行效率。


http://baike.sogou.com/v49107. ... %2598

緩存百科


ps命令,顯示系統進程。

#ps -elf = #ps -aux

USER      PID %CPU %MEM    VSZ   RSS TTY   STAT START   TIME COMMAND

root      1090  0.0  0.0  12896   828 ?    S<sl 05:32   0:00 auditd

root      1112  0.0  0.1  37184  1560 ?    Sl   05:32   0:00 

dbus      1128  0.0  0.0   3032   896 ?    Ss   05:32   0:00 dbus-daemon --

root      1283  0.0  0.0   2012   492 tty4  Ss+  05:32   0:00 /sbin/mingetty 

root      1284  0.0  0.0   2620   864 ?    S<   05:32   0:00 /sbin/udevd -d

root      6769  1.0  0.1   6552  1076 pts/0  R+   07:01   0:00 ps -aux


PID:進程的id,在linux中內核管理進程就靠pid來識別和管理某一個進程。

   比如:#kill -9 1090(進程pid)

STAT:表示進程的狀態,通常有一下幾種:

D,不能中斷的進程

R,正則運行的進程

S,已經中斷的進程,通常情況下,大部分都是這個狀態。

T,已經終止或暫停的進程,

X,已經死掉的進程,(好像從不出現)

Z,殭屍進程,關不掉的垃圾進程,佔系統很小的資源

<,高優先級進程

N,低優先級進程

L,在內存中被鎖了內存分頁

s,主線程

l,多線程進程

+,代表在前臺運行的進程


#ps aux |grep -c mingetty ,用來查看某個進程的數量。

---------------------------------------------------------------

netstat 查看端口。

#netstat -lnp  查看當前系統所有監聽端口的命令(顯示數字端口)

#netstat -an   查看系統所有網絡連接狀況的命令是(顯示數字端口)


TIME_WAIT 傳輸完成  鏈接保持着 

  ESTABLTSHED  已經建立鏈接正在通訊

  FIN_WAIT2  狀態詳情,可參考【TCP/IP 三次握手】

http://blog.csdn.net/whuslei/a ... 67471


netstat -an |grep 112.112.69.86:80  查看80端口 併發狀態

netstat -an |grep 112.112.69.86:80 |grep -ic estab  統計鏈接(ESTABLTSHED)正在通訊的鏈接總數  

(前端  靜態網頁 2到3萬 後端 有php mysql等 2000到3000 左右)


----------------------------------------------------------------

抓包工具tcpdump和tshark

查看某個網卡上都有哪些數據包。

#tcpdump -nn -i eth0

07:20:55.220948 IP 192.168.1.108.22 > 192.168.1.117.50000: Flags [P.], seq 396800:397072, ack 5761, win 359, length 272

07:20:55.221032 IP 192.168.1.108.22 > 192.168.1.117.50000: Flags [P.], seq 397072:397248, ack 5761, win 359, length 176


第三第四列,爲,哪一個IP+port在連接哪一個IP+port。

-nn 讓第三列和第四列顯示成IP+端口的形式,如果不加則顯示主機名+服務器名稱

-i 後面跟設備名,只抓取該設備信息


#tcpdump -nn -i eth0 host 192.168.1.1.1 and port 80 -c 100 -w 1.cap

用host指定IP,port指定端口,-c指定包數量,-w 寫入指定文件裏。這樣1.cap文件裏是包的內容,而如果不加-w 直接在屏幕上顯示的不是數據包而是數據流向。 這個1.cap可以下載到windows上,然後用wireeshark查看。

-s0 抓一個完整的包。


wireshark工具

#tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "htttp.request.uri" 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章