任务列表:
10.1 使用w查看系统负载
10.2 vmstat命令
10.3 top命令
10.4 sar命令
10.5 nload命令
10.6 监控io性能
10.7 free命令
10.8 ps命令
10.9 查看网络状态
10.10 linux下抓包
10.11 Linux网络相关
扩展
tcp三次握手四次挥手(重点) http://www.doc88.com/p-9913773324388.html
tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.htmlhtml
三次握手小例子 https://docs.qq.com/doc/DR3dISkdERGtac2VDlinux
ip命令使用ios
1. 设置和删除IPweb
ip addr add 192.168.10.10/24 dev eth0shell
ip addr show eth0express
ip addr del 192.168.10.10/24 dev eth0windows
2. 路由相关设置centos
ip route show缓存
ip route add default via 192.168.10.1服务器
ip route add 192.168.5.0/24 dev eth0
ip route del 192.168.10.1
另外用route命令来管理路由:
a、网络路由
route add -net 192.168.1.0/24 gw 172.16.1.106
b、主机路由
route add -host 192.168.1.110 gw 172.16.1.106
c、默认路由
route add default gw 172.16.1.106
或
route add -net 0.0.0.0 gw 172.16.1.106
d、删除路由
route del -host 192.168.1.110
route del -net 192.168.1.0/24
3. 显示网络统计数据
ip -s link
ip -s -s link ls eth0
3. 中止开启网卡
ip link set eth0 down
ip linke set eth0 up
更改网卡名字
ip link set ens37 name eth1
永久保存:https://blog.csdn.net/jyusun/article/details/71513086
w/uptime 查看系统负载
第一行显示系统时间、 up系统当前运行时间、目前登陆用户(能够从下面看到,tty1终端登录,pts/0远程登录)
系统负载 load average: 0.08, 0.14, 0.11
这三个数字分别表示1分钟、5分钟、15分钟以内,系统的负载值分别是多少,单位时间段内,使用cpu的活动的进程有多少个
1分钟内使用cpu的活动的进程有多少个
负载值低时,表明系统目前负载较小,要看有几颗逻辑CPU,不是物理CPU。
FROM:表示从哪里来
L0GIN@:表示登录时间
IDLE:空闲了多长时间
JCPU、PCPU:使用了CPU的时间
WHAT:命令
w
uptime 和w命令的第一行相同,用w便可
cat /proc/cpuinfo 查看CPU信息
查看processor的值,即表明本机的cpu核数,若是是0,表明有1颗,若是是1,表明有2颗,以此类推
查看physical id 数,表明本机物理cpu,若是是1,表明有2个物理cpu
若是cpu核数是8,即processor为7时,那么负载值不该大于8,均可以正常运行,5分钟平均负载和15分钟平均负载同理,若是负载大于8,那么表示cpu核数不够用了
lscpu 也能够查看cpu信息
vmstat命令
vmstat监控系统状态
vmstat 1 每一秒显示一次系统状态(动态显示),不须要时使用Ctrl+c中止
vmstat 1 5 每一秒显示一次系统状态,只显示5次,5次后自动终止
须要关注的点:
一、r=run 表示有多少进程处于运行状态
当进程有多个时,而CPU只有一个,那么就须要轮流使用,在一个时刻只容许一个进程在使用cpu运行
二、b=block 有多少个进程在等待
三、swpd 当内存不够时,系统能够拿出内存中的一部分数据临时放到swap交换分区里去。若是swpd值一直变换时,说明交换分区和内存在频繁的交换数据,表明内存不够了
四、si/so 与swpd存在关联
si(i表明in,单位是kb)有多少k的块数据,从swap进入到内存中 so(o表明out)有多少k的块数据,从内存中进入到swap 若是swpd在频繁变换时,这两个值确定也会变更。
五、bi/bo 与磁盘存在关联
bi有多少k的数据从磁盘进入到内存中 ,读的数据量是多少,从磁盘里读
bo有多少k的数据从内存写入到磁盘,写的数据量是多少,从磁盘里写,写入到磁盘里去
这两个数值很大时,说明磁盘在频繁的读写。跟CPU和内存比,磁盘是很慢的,若是很频繁的读写数据会致使b列的增长。由于有不少进程 在等待磁盘。
六、us用户级别,数字不会超过100,百分比
表示用户的资源占用CPU的百分比,若是数字长时间大于50,说明系统确定资源不够
七、sy系统自己的一些进程、服务,占用资源的百分比
八、id 空闲
us+sy+id=100%
九、wa=wait有多少进程在等待CPU的百分比
top命令
top查看进程使用资源状况
top 3秒显示一次,动态的
第一行:和w命令第一行相同
第二行:有多少个任务,有多少个正在运行的进程,有多少个休眠的进程,有多少个中止的进程,有多少个僵尸进程zombie (主进程被意外终止的)
第三行:CPU百分比,平时须要多关注us,若是us很高,系统负载将会特别大。st表示被偷走的cpu,若是服务器作了虚拟化,下面有一些虚拟机,就会偷走一些cpu。
第四行:KiB Mem表示物理内存,须要关注。free剩余空间
第五行:KiB Swap表示交换分区
下面默认按照%CPU排序,占用高的在上。
RES:物理内存大小,单位是字节。
PID:进程号,可使用它杀死进程,kill+pid号杀死进程
想要按照内存占用%MEM大小排序,按大写的m(M)键 ,恢复按照%CPU排序,按大写p(P)键
查看全部CPU使用率,按1,能够来回切换
退出,按q
top -c 能够看到具体的进程命令,全局的路径,看的更详细
top -bn1 静态的显示,一次性把全部的信息所有输出出来,适合在写脚本时实用
sar命令
sar Linux系统里的瑞士军刀
没有的话须要先安装: yum install -y sysstat
安装完成后报错:没法打开 /var/log/sa/sa14: 没有那个文件或目录
缘由是 由于sar 命令不加具体的选项和参数,会默认调用系统里保留的一个历史文件/var/log/sa ,sar生成的历史文件存放目录,每10分钟抓取一遍系统状态,此时尚未生成,10分钟后会生成
sar -n DEV 1 10 查看网卡流量 1是每一秒钟显示一次,10是显示10次
用法和vmstat相似,后面跟1 10表示每隔1秒显示一次,显示10次
第一列:时间
第二列:IFACE网卡名字
第三列:rxpck/s接受到的数据包,单位个数,几千正常,上万就不正常
第四列:txpck/s发送出去的数据包
第五列:rxkB/s接收的数据量,单位KB
第六列:txkB/s发送的数据量
第七列:rxcmp/s不须要关注
第八列:txcmp/s不须要关注
第九列:rxmcst/s不须要关注
查看前一天的历史数据据 sar -n DEV -f /var/log/sa/sa14 sa14 是14号生成的,因此以14结尾
/var/log/sa里保留的文件最多为1个月,因此文件为sa01 -sa31
sar -q 查看系统负载
sar -q -f /var/log/sa/sa14 能够查看14号的负载
sar -b 查看磁盘读写
nload命令
没安装的话使用前须要先安装
yum install -y epel-release 若是epel-release安装了才能够继续安装nload
yum install -y nload 安装nload
直接运行nload 动态的显示网卡实时速度的一个页面
第一行显示网卡名字、IP、网卡其中之一(1/2),能够按右方向键切换网卡,按q退出
Incoming进来带宽
Outgoing出去带宽
curr当前值
Avg平均值
Min最小值
Max最大值
Ttl总和
监控io性能
一、 iostat
在安装sysstat包时,默认会安装iostat包,和sar在同一个包里
和vmstat相似,没一秒执行一次,执行两次
iostat -d 只查看Device 相关的信息,Device 须要着重看,看读写速度
iostat -x
重要指标:%util
表示磁盘的使用百分比,若是这个数字很大,好比长期超过90%,说明磁盘很是忙,读写确定也会很大。若是读写不大,但该列值很大, 就说明硬盘有问题。
iotop 当磁盘io很忙,可使用iotop查看,得到读写的进程是哪一个,按IO使用率大小排序
yum install -y iotop 没安装的话先安装
和top很像,动态显示
SAWPIN 交换分区,交换到内存里去
free命令
用来查看内存和swap使用状况
centos6和centos7显示的内容是不同的,7更加直观,第一行是说明,第二行是内存使用状况,第三行是swap使用状况,咱们主要关注第二行,内存使用状况。
第一列:total内存总大小,单位KB
第二列:used内存已用大小,着重关注此列
第三列:free内存剩余大小
第四列:shared共享大小
第五列:buff(缓冲)/cache 缓存)
关于buffer和cache咱们能够这样简单区分:
0000(磁盘)-->内存(cache)--> CPU 即,从磁盘读出来后先放到内存里,而后CPU再到内存里去取这部分数据,这里的内存叫作cache
cpu(00000)--> 内存(buff)--> 磁盘 即,cpu产生的数据首先写入到内存中,而后再慢慢写到磁盘里,这部份内存叫作buffer
正常状况下内存总大小=已有+剩余,这里是并不对等的,由于在Linux系统里,会有一部分空间给buff/cache
第六列:available 包含free和buffer/cache剩余部分,关注available,这个数字是真正剩余的物理内存大小
公式:total=used+free+buff/cache
指定单位为M时,使用free -m
指定单位为G时,使用free -g或者free -h 在后面显示单位
free -b 单位为b
ps命令
ps命令查看系统进程
ps aux 静态的,一次性把系统当前全部进程列出来
USER用户
PID进程ID,杀死进程时能够用到kill PID,有时候这样并不能终止进程,须要加-9选项,即kill -9 PID,但这样有点暴力,严重时会丟失数据,尽可能不要使用。
STAT进程状态,分为如下几种
D 不能中断的进程
R 正在运行,或在队列中的进程
S 处于休眠状态的进程
T 中止或被追踪的进程
Z 僵尸进程
W 进入内存交换(从内核2.6开始无效)
X 死掉的进程
< 高优先级进程
N 低优先级进程
L 内存中被锁了内存分页
s 主进程,包含子进程
l 多线程进程
+ 前台进程
查看进程所在目录 Is -I /proc/进程的PID/
ps aux |grep 进程名 检测进程有没有运行的方法
ps -elf 相似于ps aux,把系统全部进程全列出来
ps -eLf(查看线程)
查看网络状态 netstat
netstat -lnp 查看监听端口 须要关注上面的端口部分
netstat -an 查看tcp/ip 全部的链接状态
netstat -ltnp 只查看tcp的监听端口
netstat -ltunp 查看tcp和udp的监听端口
小技巧:查看全部状态数字
netstat -an |awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
ESTABLISHED若是很大,说明系统很忙,咱们能够理解为并发链接数,并发就是 同一时间有多少个客户端在链接
ss -an和netstat殊途同归,显示tcpip状态
ss -an |grep -i listen
查看listen的状态,不会显示进程名称
netstat -lntp netstat 显示
Linux下抓包
一、tcpdump工具 .
安装 yum install -y tcpdump
tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表如今灵活的表达式上。不带任可选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才会中止抓包。
命令格式:
tcpdump [ -DenNqvX ] [ -c count ][ -F file ][ -i interface ] [ -r file ]
[ -s snaplen ] [ -w file ] [ expression ]
抓包选项:
-c:指定要抓取的包数量。注意,是最终要获取这么多个包。例如,指定"-c 10"将获取10个包,但可能已经处理了 100个包,只不过只有10个包是 知足条件的包。
-i interface:指定tcpdump须要监听的接口。若未指定该选项,将从系统接口列表中搜寻编号最小的已配置好的接口(不包括loopback接口,要 抓取loopback接口使用tcpdump -i lo),一旦找到第一个符合条件的接口,搜寻立刻结束。可使用'any'关键字表示全部网络接口。
-n:对ip地址以数字方式显式,不然显示为主机名,也就是说-n选项不作主机名解析。
-nn:除了-n的做用外,还把端口显示为数值,不然显示端口服务名。
-N:不打印出host的域名部分。例如tcpdump将会打印’nic'而不是'nic.ddn.mil'。
-P:指定要抓取的包是流入仍是流出的包。能够给定的值为"in"、"out"和"inout",默认为"inout"。
-s len:设置tcpdump的数据包抓取长度为len,若是不设置默认将会是65535字节。对于要抓取的数据包较大时,长度设置不够可能会产生包截 断,若出现包截断, 输出行中会出现"[|proto]"的标志(proto实际会显示为协议名)。可是抓取len越长,包的处理时间越长,而且会减小tcpdump可缓存的 数据包的数量,从而会致使数据包的丢失,因此在能抓取咱们想要的包的前提下,抓取长度越小越好。
输出选项:
-e:输出的每行中都将包括数据链路层头部信息,例如源MAC和目标MAC。
-q:快速打印输出。即打印不多的协议相关信息,从而输出行都比较简短。
-X:输出包的头部数据,会以16进制和ASCII两种方式同时输出。
-XX:输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。
-v:当分析和打印的时候,产生详细的输出。
-vv:产生比-v更详细的输出。
-vvv:产生比-vv更详细的输出。
其余功能性选项:
-D:列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们均可以用于"-i"后。
-F:从文件中读取抓包的表达式。若使用该选项,则命令行中给定的其余表达式都将失效。
-w:将抓包数据输出到文件中而不是标准输出。能够同时配合"-G time"选项使得输出文件每time秒就自动切换到另外一个文件。可经过"-r"选项载 入这些文件以进行分析和打印。
-r:从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取。
tcpdump -nn -i ens33
tcpdump -nn -i ens33 port 22 只要端口是22的包
tcpdump -nn -i ens33 not port 80 不要80端口的包
tcpdump -nn -i ens33 not port 80 and host 192.168.247.3 不要80端口而且host是192.168.247.3 的包
tcpdump -nn -i ens33 -c 100 只抓取100个包
tcpdump -nn -i ens33 -c 10 -w /tmp/1.cap
要有数据产生才能抓包,能够再打开一个终端产生一些数据,例如执行top命令、vmstat命令,过一会就会抓取完。
要查看1.cap信息,不能直接使用cat 查看 使用 tcpdump -r /tmp/1.cap 查看
二、tshark
yum install -y wireshark
使用 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访问状况,主要针对80端口
tshark -i ens33 -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"
Linux网络相关
fconfig查看网卡ip(yum install net-tools)
ifconfig -a 当网卡down掉的时候,通常不会显示,加上-a会所有显示出来
ifup ens33/ifdown ens33 启用/关闭网卡
不要在Xshell里使用,在虚拟机里使用。通常在对网卡进行更改后使用,例如添加网关。也能够一块儿使用ifdown ens33 && ifup ens33,防止远程链接断掉
设置虚拟网卡
首先在网卡配置文件目录里复制一个ens33的配置文件
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33\:0 \ 脱义冒号
对新作的网卡编辑
ifdown ens33 && ifup ens33 在运行此命令从新链接下网卡
ifconfig 查看
能够在windows上Ping 192.168.247.155是否通
mii-tool ens33 查看网卡是否链接
ethtool ens33 也能够查看网卡是否链接
更改主机名 hostnamectl set-hostname 001
centos6不支持此命令,想要生效须要退出从新登陆一下
hostname 能够查看主机名
查看主机名配置文件 cat /etc/hostname
DNS配置文件/etc/resolv.conf
这是由网卡配置文件定义的,也能够临时编辑resolv.conf文件设置dns2,可是重启后依然会被网卡里的配置文件覆盖
/etc/hosts文件
在Windows和Linux下都有此文件,后续讲Iamp时去访问自定义域名时,就会用到此文件。假设咱们ping—个域名,会解析出他的公网IP, 可是若是咱们在hosts文件里配置此域名,就会解析到咱们配置的IP上
正常ping www.qq.com
编辑hosts文件
从新ping ,仅在本机生效
注意: 一个ip后面能够跟多个域名,可是同一个域名只能有一个ip生效
若是前面同一个域名指定了两个ip,会之后面的ip为主
模拟一个G的磁盘空间:
dd if=/dev/zero of=/bigfile bs=1M count=1000
dd(对磁盘进行操做的工具),if(从哪里来),of(目标的文件或磁盘,此处写入到跟目录下,叫bigfile),bs(决定文件大小)=1M(即每一个块为1M),count=1000(共有1000个块),也能够写成bs=100M,count=10
mkswap /bigfile 格式化成swap格式
chmod 600 /bigfile 更改权限
swapon /bigfile 挂载
以前的swap大小
挂载后的大小