5月7日
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5月7日相关的知识,希望对你有一定的参考价值。
10.6 监控io性能
1.监控io性能
命令 iostat -x 查看磁盘使用
注:%util这列就是表示磁盘io百分比,如果百分比很大,那就会导致读与写也很大,会影响磁盘性能,磁盘有异常。
2 .iotop命令
使用 yum install -y iotop 安装
输入iotop命令, 查看磁盘io,动态显示。
10.7 free命令
1. free命令可以查看当前系统的总内存大小以及使用内存的情况。
查看内存使用多少,剩余多少请看第二行的数据。另外我们还可以加-m或-h 或者-g选项分别以M或G为单位打印内存使用状况:
常用的命令选项是:free -h
解释:
total:内存总大小。
used:真正使用的实际内存大小。
free:剩余物理内存大小(没有被分配,纯剩余)
shared:共享内存大小,不用关注它。
buff/cache:分配给buffer和cache的内存总共有多大。buffer和cache都是一部分内存,内存的作用就是缓解CPU和IO(如,磁盘)的速度差距的,可以如下理解:
数据经过CPU计算,即将要写入磁盘,这时用的内存为buffer
CPU要计算时,需要把数据从磁盘中读出来,临时先放到内存中,这部分内存就是cache。
available:系统可使用内存有多大,它包含了free,同时还有buffert和cache这部分还未占用的内存。
free命令可以加上-m和-g、-h选项(分别以MB或GB为单位)打印内存的使用状况
总结:
公式:total=used+free+buff/cache
avaliable包含free和buffer/cache剩余部分
10.8 ps命令
1.查看系统进程命令: ps aux 或 ps -elf 都可以
说明:
2. PID:表示进程的ID,在想要杀死进程的时候就有作用
命令 kill PID号 例子:kill 1346 ,有时杀不掉,则需要加一个-9选项了
kill -9 进程pid 例如:kill -9 1346
ps aux |grep qmgr 会看到的该进程被杀掉了
在遇到一个不知道的进程(有可能是被入侵的进程),在杀死的时候,就需要先查看进程的PID号。
3. STAT:进程的状态。
D:不能中断的进程,通常为IO (正在等待IO资源的进程,类似于vmstat中的b)。
R(run): 正在运行的进程,其中包括了等待CPU时间片的进程。
S(sleep):已经中断的进程,同样情况下系统的大部分进程都是这个状态。
T:已经停止或者暂停的进程。如果我们正在运行一个命令,比如说sleep 10,我们按一下Ctrl+z暂停进程时,用ps命令查看就会显示T这个状态。
X:已经死掉的进程。
Z:僵尸进程。
<:高优先级进程。
N:低优先级进程。
s:主进程。
+:前台的进程,例如此时ps aux就是前台的进程。
l:多线程进程。
4. ps命令经常会连同管道符一起使用,用来查看某个进程或者它的数量
命令:ps aux |grep sshd
上例中的3不准确,需要减掉1,因为使用grep命令时,grep命令本身也算一个进程。
10.9 查看网络状态
1. 查看网络状态
netstat命令用来打印网络连接状况、系统所开放端口、路由表等信息。
常用的netstat的命令就是这个 netstat -lnp (打印当前系统启动哪些端口)和
netstat -an (打印网络连接状况)
常用的命令有如下:
1.1 netstat 查看网络状态
1.2 netstat -lnp 查看监听端口
1.3 netstat -an 查看系统的网络连接状况
1.4 netstat -lntp 只看出tcp的,不包含socket
1.5 ss -an 和nestat异曲同工,也是查看网络状态
1.1 netstat 查看网络状态
1.2 netstat -lnp 查看监听端口
1.3 netstat -an 查看系统的网络连接状况
1.4 netstat -lntp 只看出tcp的,不包含socket
1.5 ss -an 和nestat异曲同工,也是查看网络状态
2. 如果你所管理的服务器是一台提供web服务(80端口)的服务器,那么你就可以使用 命令:netstat -an |grep 80 查看当前连接web服务的有哪些IP了。
3.小技巧:
可以查看所有状态的数字,
使用命令:netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'
如下:
10.10 linux下抓包
1. linux抓包工具tcpdump
有时候想看一下某个网卡上都有哪些数据包,尤其是当你初步判定你的服务器上有流量攻击。这时,使用抓包工具来抓一下数据包,就可以知道有哪些IP在攻击你了
安装命令 yum install -y tcpdump
用法:tcpdump -nn -i eth0 (使用ifconfig查看网卡名称)
1.1 只关注第3-4列,显示为哪一个IP地址+端口号在连接哪一个IP+端口号。
1.2 -i表示网卡,后面跟的eth0是网卡名称,如果想抓取其他网卡上的数据包,后面则要 跟其他网卡的名字。
1.3 -nn选项的作用是让第三列和第四列显示成“ip+端口号”的形式,如果不加-nn选项则显示“主机名+服务名称”。
其它用法:
tcpdump -nn -i ens33 -c 100 //-c作用是指定抓包数量,抓够了就自动退出,不用人为取消。
tcpdump -nn -i ens33 port 80 // 指定只抓80端口的包
tcpdump -nn -i ens33 not port 22 //不要22端口的包
tcpdump -nn -i ens33 tcp and not port 22 //指定抓tcp的包,但是不要22端口的
tcpdump -nn -i ens33 port 22 and port 53 //只抓22和53端口的包
tcpdump -nn -i ens33 not port 22 and host 192.168.0.100 //只要这个ip的包
tcpdump -nn -c 100 -w /tmp/12.cap //指定打印数据包条数,然后存储到指定文件里。
tcpdump -r /tmp/12.cap //因为12.cap是二进制数据包,不是文本,所以不能cat,应该用这种方式读取。
2. wireshark工具
安装命令 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访问的情况,如果服务器没有提供web服务,没有任何的80端口在监听,就无法显示效果,类似web的访问日志。
以上是关于5月7日的主要内容,如果未能解决你的问题,请参考以下文章