服务器负载监控以及文字处理脚本

释放双眼,带上耳机,听听看~!

2019独角兽企业重金招聘Python工程师标准>>> 服务器负载监控以及文字处理脚本

运维监控总少不了一些脚本来监控自己的机器,博主自己写了个监控,并通过sleep来控制输出的间隔时间。如果想要获取其他的相关信息,可以采用类似的方式,添加即可。

 

 


 

 

首先是服务器的负载监控脚本,主要输出了 内存,CPU,网络连接等信息


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
1#!/bin/sh
2while true
3do
4
5TOP=`top -b -n 2 | grep Cpu |tail -2`
6FREE=`free -m`
7SWAP=`echo $FREE | grep Swap | cut -d":" -f 4`
8MEM=`echo $FREE | grep Mem | cut -d: -f 2`
9#cpu status##########################################################
10
11IDLE=`echo $TOP | awk '{print $14}'| sed s/id,//`
12#swap status#########################################################
13swap_total=`echo $SWAP | awk '{print $1}'`
14swap_free=`echo $SWAP| awk '{print $3}'`
15
16#mem status##########################################################
17mem_total=`echo $MEM| awk '{print $1}'`
18mem_used=`echo $MEM | awk '{print $2}'`
19mem_free=`echo $MEM| awk '{print $3}'`
20caches=`echo $MEM| awk '{print $6}'`
21
22#tcp status##########################################################
23closed_wait=`netstat -an| awk '/^tcp.*CLOSED_WAIT/' | wc | awk '{print $1}'`
24established=`netstat -an| awk '/^tcp.*ESTABLISHED/' | wc | awk '{print $1}'`
25
26#date infomation####################################################
27DATE=`date +"%F %T"`
28
29#echo all the infomation############################################
30echo $DATE" "$IDLE" "$mem_total" "$mem_used" "$mem_free" "$caches" "$swap_total" "$swap_free" "$closed_wait" "$established >> Load.log
31sleep 1
32done
33

然后是单独列出 日期时间以及CPU负载的 文本处理脚本,主要进行了自动的筛减数据,及分列处理


1
2
3
4
5
6
7
8
9
10
11
12
1#!/bin/bash
2count=1
3num=10
4while read line;do
5    ((count++))
6{
7    if [ $count -eq $num ];then
8         count=1 && echo $line >> odb.txt
9    fi
10}
11done < db.txt
12

最后是脚本输出的最后处理,过滤掉CPU获取失败的行,并把CPU空闲转化为CPU的利用率。最后的脚本效率极差,可以进行优化。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1#!/bin/bash
2while read line;do
3{
4    READ=`echo $line | awk '{print $3}'`
5    WE="0.0%wa,"
6    NUM=`echo $READ    | tr -cd '0-9'`
7    NUM1=`echo $NUM | sed 's/\(.\)$/.\1/g'`
8    RESULT=`echo "scale=3;1000-$NUM1"|bc`
9    RERE=`echo $RESULT | sed 's/.*\(...\)$/\1/'`
10
11    HAHA=`echo $line | awk '{print $1,$2}'`
12
13    if [ $READ != $WE ];then
14        echo $HAHA $RERE% >> idb.txt
15    fi
16}
17done < odb.txt
18

 

 

转载于:https://my.oschina.net/u/204616/blog/545366

给TA打赏
共{{data.count}}人
人已打赏
安全技术安全运维

Windows服务器如何发现被黑

2018-5-20 12:24:31

安全技术

详解Node.js API系列C/C++ Addons(1) API文档

2021-12-21 16:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索