首页 > 代码库 > 十五、free、ps、netstat命令,以及抓包工具tcpdump和tshark
十五、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"
十五、free、ps、netstat命令,以及抓包工具tcpdump和tshark