学习linux第三十一天

iostat 

[root@hanlin /]# yum install -y sysstat.x86_64 (装软件安装包,包含iostat和sar)

[root@hanlin /]# iostat (查看cpu负载和磁盘读写)
Linux 3.10.0-693.el7.x86_64 (hanlin) 2018年06月20日 _x86_64_ (4 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
0.04 0.00 0.08 0.00 0.00 99.87

Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
fd0 0.00 0.00 0.00 20 0
sda 0.14 3.25 2.49 4501021 3453790
scd0 0.00 0.01 0.00 7094 0
sdb 0.00 0.01 0.01 18042 17534
dm-0 0.00 0.01 0.01 9746 17466

 

[root@hanlin /]# iostat -x (查看磁盘io信息)
Linux 3.10.0-693.el7.x86_64 (hanlin) 2018年06月20日 _x86_64_ (4 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
0.04 0.00 0.08 0.00 0.00 99.87

Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util(主要看这个参数,表示cpu有多少时间是被io占用了的)
fd0 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 39.20 39.20 0.00 39.20 0.00
sda 0.00 0.03 0.04 0.10 3.25 2.50 80.97 0.00 14.94 16.72 14.24 2.11 0.03
scd0 0.00 0.00 0.00 0.00 0.01 0.00 33.70 0.00 1.91 1.91 0.00 1.84 0.00
sdb 0.00 0.00 0.00 0.00 0.01 0.01 52.74 0.00 3.24 2.93 3.91 1.94 0.00
dm-0 0.00 0.00 0.00 0.00 0.01 0.01 46.04 0.00 3.69 2.22 4.37 1.23 0.00

iotop (查看哪个进程io占比最高)
[root@hanlin /]# yum -y install iotop (安装软件包)
[root@hanlin /]# iotop (主要看IO>这一项)

Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s

Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND


free(查看内存和swap详情)

[root@hanlin /]# free -m (查看内存详情,以M为单位)
          total used free shared buff/cache available
Mem: 2136 689  326       21        1120               1190
Swap: 4095 99 3996
[root@hanlin /]# free -h (自适应单位)
total used free shared buff/cache available
Mem: 2.1G 689M 326M 21M 1.1G 1.2G
Swap: 4.0G 99M 3.9G

 

total=used+free+buff/cache(缓冲或者缓存,缓冲是cpu处理完的输出交给磁盘时占用的内存空间,缓存是磁盘把数据交给cpu处理时的放入内存的空间,buff/cache都是系统预留的)

available=free+buff/cache还没用到的空间

 

ps (进程查看)

 

[root@hanlin /]# ps -aux (

aux 显示所有包含其他使用者的行程 )/ps -elf


USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 128164 5140 ? Ss 6月04 1:21 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root 2 0.0 0.0 0 0 ? S 6月04 0:03 [kthreadd]
root 3 0.0 0.0 0 0 ? S 6月04 1:28 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 6月04 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S 6月04 0:04 [migration/0]
root 8 0.0 0.0 0 0 ? S 6月04 0:00 [rcu_bh]


进程的五种状态

  1. D 不可中断 uninterruptible sleep (usually IO)   
  2. R 运行 runnable (on run queue)   
  3. S 中断 sleeping   
  4. T 停止 traced or stopped   
  5. Z 僵死 a defunct (”zombie”) process 
  6. < 高优先级进程
  7. N 低优先级进程 
  8. L 内存中被锁了内存分页
  9. s 主进程
  10. l 多线程进程
  11. + 前台进程 
  12.  

 

netstat

-a或--all:显示所有连线中的Socket;
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;
-c或--continuous:持续列出网络状态;
-C或--cache:显示路由器配置的快取信息;
-e或--extend:显示网络其他相关信息;
-F或--fib:显示FIB;
-g或--groups:显示多重广播功能群组组员名单;
-h或--help:在线帮助;
-i或--interfaces:显示网络界面信息表单;
-l或--listening:显示监控中的服务器的Socket;
-M或--masquerade:显示伪装的网络连线;
-n或--numeric:直接使用ip地址,而不通过域名服务器;
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称;
-o或--timers:显示计时器;
-p或--programs:显示正在使用Socket的程序识别码和程序名称
-r或--route:显示Routing Table;
-s或--statistice:显示网络工作信息统计表;
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
-v或--verbose:显示指令执行过程;
-V或--version:显示版本信息;
-w或--raw:显示RAW传输协议的连线状况;
-x或--unix:此参数的效果和指定"-A unix"参数相同;
--ip或--inet:此参数的效果和指定"-A inet"参数相同。

[root@hanlin ~]# netstat | less (查看网络状态)

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address Foreign Address State 
tcp 0 52 hanlin:ssh 192.168.0.100:50727 ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ] DGRAM 11012 /run/systemd/shutdownd
unix 2 [ ] DGRAM 19143 /var/run/chrony/c

 

[root@hanlin ~]# netstat -lnp (查看监听端口)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd 
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1790/dnsmasq 
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1584/sshd 
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1581/cupsd 
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1692/master 
tcp6 0 0 :::111 :::* LISTEN 1/systemd 
tcp6 0 0 :::22 :::* LISTEN 1584/sshd 
tcp6 0 0 ::1:631 :::* LISTEN 1581/cupsd 
tcp6 0 0 ::1:25 :::* LISTEN 1692/master 
udp 0 0 192.168.122.1:53 0.0.0.0:*

[root@hanlin ~]# netstat -an (查看系统的网络连接状况)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State 
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 
tcp 0 52 192.168.0.12:22 192.168.0.100:50727 ESTABLISHED
tcp6 0 0 :::111 :::* LISTEN 
tcp6 0 0 :::22 :::* LISTEN

[root@hanlin ~]# netstat -lntp (只看tcp的端口状态,不包含socket)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name 
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd 
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1790/dnsmasq 
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1584/sshd 
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1581/cupsd 
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1692/master 
tcp6 0 0 :::111 :::* LISTEN 1/systemd 
tcp6 0 0 :::22 :::* LISTEN 1584/sshd 
tcp6 0 0 ::1:631 :::* LISTEN 1581/cupsd 
tcp6 0 0 ::1:25 :::* LISTEN 1692/master


[root@hanlin ~]# ss -an(和netstat差不多功能)
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port 
nl UNCONN 0 0 0:411043381 * 
nl UNCONN 0 0 0:-1157626315 * 
nl UNCONN 0 0 0:-1094712480 * 
nl UNCONN 0 0 0:0 * 
nl UNCONN 0 0 0:1763 * 
nl UNCONN 0 0 0:773 * 
nl UNCONN 0 0 0:1975 * 
nl UNCONN 0 0 0:1975 *

[root@hanlin ~]# netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'(显示所有连接状态和数目)
LISTEN 9           (监听中的进程数)
ESTABLISHED 1  (已经建立连接的进程数)

linux抓包工具

-c:指定要抓取的包数量。注意,是最终要获取这么多个包。例如,指定"-c 10"将获取10个包,但可能已经处理了100个包,只不过只有10个包是满足条件的包。
-i interface:指定tcpdump需要监听的接口。若未指定该选项,将从系统接口列表中搜寻编号最小的已配置好的接口(不包括loopback接口,要抓取loopback接口使用tcpdump -i lo),
            :一旦找到第一个符合条件的接口,搜寻马上结束。可以使用'any'关键字表示所有网络接口。
-n:对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析。
-nn:除了-n的作用外,还把端口显示为数值,否则显示端口服务名。
-N:不打印出host的域名部分。例如tcpdump将会打印'nic'而不是'nic.ddn.mil'。
-P:指定要抓取的包是流入还是流出的包。可以给定的值为"in"、"out"和"inout",默认为"inout"。
-s len:设置tcpdump的数据包抓取长度为len,如果不设置默认将会是65535字节。对于要抓取的数据包较大时,长度设置不够可能会产生包截断,若出现包截断,
      :输出行中会出现"[|proto]"的标志(proto实际会显示为协议名)。但是抓取len越长,包的处理时间越长,并且会减少tcpdump可缓存的数据包的数量,
      :从而会导致数据包的丢失,所以在能抓取我们想要的包的前提下,抓取长度越小越好。
-w:将抓包数据输出到文件中而不是标准输出。可以同时配合"-G time"选项使得输出文件每time秒就自动切换到另一个文件。可通过"-r"选项载入这些文件以进行分析和打印。
-r:从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取。

 

[root@hanlin ~]# yum install -y tcpdump.x86_64 (软件安装包)

[root@hanlin ~]# tcpdump -nn -i ens33 -c 10 -w /tmp/xy.cap(对网卡进行抓包,抓10个写入到/tmp/xy.cap中,把ip和端口数字化)
tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
10 packets captured
10 packets received by filter
0 packets dropped by kernel
[root@hanlin ~]# tcpdump -r !$ (查看抓包另存的文件,-r表示读取)
tcpdump -r /tmp/xy.cap
reading from file /tmp/xy.cap, link-type EN10MB (Ethernet)
15:52:47.235655 IP hanlin.ssh > 192.168.3.99.57276: Flags [P.], seq 2804112156:2804112304, ack 3002048691, win 274, length 148
15:52:47.235889 IP 192.168.3.99.57276 > hanlin.ssh: Flags [.], ack 148, win 253, length 0
15:52:47.295183 IP 192.168.3.99.ospf-lite > 192.168.3.177.56641: Flags [P.], seq 441392547:441393036, ack 1066936194, win 251, length 489

[root@hanlin ~]# tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri" (查看网卡80端口web的访问详情)
 

转载于:https://my.oschina.net/u/3867255/blog/1843888

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值