笔记目录
- 使用w查看系统负载
- vmstat命令
- top命令
- sar命令
- nload命令
- 监控io性能
- free命令
- ps命令
- 查看网络状态
- Linux下抓包
- Linux网络相关
- tcp三次握手四次挥手
- tshark几个用法
一.使用w查看系统负载
- #w 查看系统负载;主要关注第一行最后三个数值,分别是1,5,15分钟内系统的负载时多少(和CPU有关)单位时间内使用CPU的活动进程有多少个(平均值)
- #date 查看当前系统的时间
- #cat /proc/cpuinfo 查看cpu详细信息,processor值为0代表单核CPU。
- #uptime 简单查看当前系统负载值
二.vmstat命令
- #vmstat 查看cpu内存,一般系统负载偏高是用该命令查看。
r列表示有多少进程在run(运行)的状态
b代表cpu以外的资源被其他进程占用
swpd当内存不够是数字会发生变化
si代表有多少kb的数据从swp进入内存中
bi代表从磁盘中出来到内存中去,bo代表写去数据量数值大小代表磁盘数据的读写频率
us表示用户级别的一些资源占用的cpu百分比
us+sy+id=100
wa代表等待CPU的百分比
- #vmstat 1 5 查看内存信息,一秒更新打印一次,一共打印5条。
三.top命令
- #top 查看进程所占的系统资源,动态显示,3秒更新一次
- zombie僵尸进程表示主进程被意外终止,子进程只好自生自灭,会占用资源
主要关注us的值(代表CPU使用率)
RES代表物理内存的大小,单位是k字节
默认按CPU占用大小排序,按M可以按内存占用大小查看排序
按P切换回CPU占用排序
按1可以显示所有CPU的使用值
按q退出
- #top -c 可以查看具体进程路径
- #bop -bn1 可以静态显示所有进程
四.sar命令
- #yum install -y sysstat 安装该命令
- #ls /var/log/saxx 每十分钟生成一个文件在该目录下,历史文件存放处
- sar -n DEV 查看网卡流量
rx代表接收到的数据包,tx是发送出去的数据包
rxpck数值几千的值大概是正常的,上万的话,可能被攻击了
- #sar
- #sar -n DEV -f /var/log/sa/sa17 查看历史信息,这个历史信息最多保留一个月
- #sar -q 查看系统负载
- #sar -b 1 5 看开磁盘读写情况和磁盘负载
五.nload命令
- #yum install -y epel-release
- #yum install nload
- #nload 动态显示网卡流量平均速度
- 按方向键左右可以切换网卡
- 按q退出
六.监控io性能
- #iostat -x 查看磁盘使用情况
io百分比表示等待执行的进程
wkb数值很大的话,说明硬盘可能有故障
- #yum install -y iotop 安装iptop命令
- #iptop 查看是进程信息,磁盘实时读写速率
七.free命令
- #free 查看内存的使用情况
第一列是内存的总大小,单位是kb
第二列是使用了多少
第三列是剩余内存数量
buff/cache(缓冲和缓存)是预分配内存的量
磁盘 > 内存(cache缓存)> CPU;CPU >内存(buff缓冲)> 磁盘
公式total=used+free+buff/cache
available=free和buffer/cache 的剩余部分
- #free -m/-g/-h 有单位的显示内存使用情况
八.ps命令
- #ps aux 查看系统所有的进程,静态打印当前进程使用情况
- #ps -elf 同样也是查看所有进程使用情况
- #ps -C 进程名 查看系统里是否有这个进程
- #ps aux |grep 过滤出你想要找的进程
- #kill 1234 用来杀死某个进程
- #ls -l /proc/505/ 查看505该进程在哪运行的
D 是不能中断的进程
R run状态下的进程
S sleep状态下的进程
T 暂停的进程
Z 僵尸进程
< 高优先级的进程
N 低优先级的进程
s 主进程
| 多线程进程
+ 前台进程
九.查看网络状态
- #netstat 查看网络状态
- #netstat -lnp 查看监听端口
- #netstat -an 查看系统所有的网络连接状态,也就是tcp/ip状态
- ss -an和netstat -an 用法相似,但是比netstat更快
- sockets是uninx用户互相通信的文件(同网段)
- #netstat -an | awk '^tcp/{++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}' 查看所有状态的数字
十.Linux下抓包
- #yum install -y tcpdump 安装tcpdump命令
- #tcpdump -nn -i ens33 查看网卡的数流向
- #DDos 攻击,看udp flood
- #tcpdump -nn port 80 指定筛选该端口的包
- #tcpdump -nn not port 22 and host 192.168.1.1 指定不要22端口的,只要该ip地址的包
- #tcpdump -nn -c 100 -w 1.txt 指定数据包只抓取100个并存到1.txt文件里面去
该终端不产生数据流的话,就不会产生那么多数据包,新开一个终端去运行产生数据流,就可以抓到你一定量的包了
- #file /1.txt 可以查看到该文件的大概信息
- 这个文件是不可以cat的,会乱码
- #tcpdump -r /1.txt 则可以查看改文件信息,用来读取抓来的包
- #yum install -y weireshark 安装该抓包工具
- #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访问信息
十一.Linux网络相关
- #yum install net-tools 安装ifconfig命令
- #ipconfig 查看网卡ip
- #ifconfig -a 当你的网卡没有ip的时候,就可显示网卡信息
- #ifdown ens33 /ifup ens33 开启关闭网卡
- #ifdown ens33 &&ifup ens33 重启该网卡
- 设置虚拟网卡
进入网卡配置文件下
拷贝一份网卡配置文件
将下图箭头所指三个位置改成下图所示
重启网卡
#ifconfig查看网卡
- #mii-tool ens33 查看网卡是否连接
- #ethtool ens33 也可以查看网卡是否连接
主要查看link detected后的内容
- #hostnamectl set-hostname aminglinux-oo1 更改主机名
- #cat /etc/hostname 查看主机名的配置文件
- #cat /etc/resolv.conf 查看DNS配置文件
- #cat /etc/hosts 更改配置域名ip连接到哪,可以让同样的网站访问不同的地址,只在本机生效,
- 设置和删除IP
#ip addr add 192.168.10.10/24 dev eth0
#ip addr show eth0
#ip addr del 192.168.10.10/24 dev eth0
- 路由器相关设置
#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命令来管理路由:
网络路由:#route add -net 192.168.1.0/24 gw 172.16.1.106
主机路由:#route add -host 192.168.1.110 gw 172.16.1.106
默认路由:#route add default gw 172.16.1.106 或者#route add -net 0.0.0.0 gw 172.16.1.106
删除路由:#route del -host 192.168.1.110 #route del -net 192.168.1.0/24
- 显示网络统计数据
#ip -s link
#ip -s -s link ls eth0
- 停止开启网卡
#ip link set eth0 down
#ip linke set eth0 up
- 更改网卡名字
#ip link set ens37 name eth1
十二.tcp三次握手四次挥手
打开下方地址查看详细内容:
http://www.doc88.com/p-9913773324388.html
十三.tshark几个用法
- 默认我们的机器上是没有安装这个工具的。如果你的linux是CentOS那么就使用yum安装
yum install -y wireshark
也可以到官网下载源码 http://www.wireshark.org
具体安装方法,请参考 http://www.qtasp.cn/wiresharkcharpt/buildingwireshark.html
- 以下,简单介绍这个抓包工具的应用
1. 以下的用法可以显示访问http请求的域名以及uri
- 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"
2. 以下可以抓取mysql的查询
- tshark -n -i eth1 -R 'mysql.query' -T fields -e "ip.src" -e "mysql.query"
另外一种方法:
- tshark -i eth1 port 3307 -d tcp.port==3307,mysql -z "proto,colinfo,mysql.query,mysql.query"
3. 以下可以抓取指定类型的MySQL查询
- tshark -n -i eth1 -R 'mysql matches "SELECT|INSERT|DELETE|UPDATE"' -T fields -e "ip.src" -e "mysql.query"
4. 统计http的状态
- tshark -n -q -z http,stat, -z http,tree
这个命令,直到你ctrl + c 才会显示出结果
5. tshark 增加时间标签
- tshark -t ad
- tshark -t a
参考
https://ask.wireshark.org/questions/16964/analyzing-http-protocol-using-tshark