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日的主要内容,如果未能解决你的问题,请参考以下文章

Javascript 日期对象:从 5 月 31 日跳转到下个月是 7 月 1 日

7月5日 星期二 --出埃及记 Exodus 15:1

5月7日团队博客

5月7日 - 二分法

7月5日

5月7日