监控CPU、内存、硬盘利用率

1)CPU

借助vmstat工具来分析CPU统计信息

#!/bin/bash
DATE=$(date +%F" "%H:%M)
IP=$(ifconfig eth0 |awk -F  [ :]+   /inet addr/{print $4} )  # 只支持CentOS6
MAIL="example@mail.com"
if ! which vmstat &>/dev/null; then
    echo "vmstat command no found, Please install procps package." 
    exit 1
fi
US=$(vmstat |awk  NR==3{print $13} )
SY=$(vmstat |awk  NR==3{print $14} )
IDLE=$(vmstat |awk  NR==3{print $15} )
WAIT=$(vmstat |awk  NR==3{print $16} )
USE=$(($US+$SY))
if [ $USE -ge 50 ]; then
    echo "
    Date: $DATE
    Host: $IP
    Problem: CPU utilization $USE
    " | mail -s "CPU Monitor" $MAIL
fi

2)内存

#!/bin/bash
DATE=$(date +%F" "%H:%M)
IP=$(ifconfig eth0 |awk -F  [ :]+   /inet addr/{print $4} )  
MAIL="example@mail.com"
TOTAL=$(free -m |awk  /Mem/{print $2} )
USE=$(free -m |awk  /Mem/{print $3-$6-$7} )
FREE=$(($TOTAL-$USE))
# 内存小于1G发送报警邮件
if [ $FREE -lt 1024 ]; then
    echo "
    Date: $DATE
    Host: $IP
    Problem: Total=$TOTAL,Use=$USE,Free=$FREE
    " | mail -s "Memory Monitor" $MAIL
fi

3)硬盘
#!/bin/bash
DATE=$(date +%F" "%H:%M)
IP=$(ifconfig eth0 |awk -F  [ :]+   /inet addr/{print $4} )  
MAIL="example@mail.com"
TOTAL=$(fdisk -l |awk -F [: ]+   BEGIN{OFS="="}/^Disk /dev/{printf "%s=%sG,",$2,$3} )
PART_USE=$(df -h |awk  BEGIN{OFS="="}/^/dev/{print $1,int($5),$6} )
for i in $PART_USE; do
    PART=$(echo $i |cut -d"=" -f1)
    USE=$(echo $i |cut -d"=" -f2)
    MOUNT=$(echo $i |cut -d"=" -f3)
    if [ $USE -gt 80 ]; then
        echo "
        Date: $DATE
        Host: $IP
        Total: $TOTAL
        Problem: $PART=$USE($MOUNT)
        " | mail -s "Disk Monitor" $MAIL
    fi
done


标签: shell

作者头像
南宫俊逸创始人

君子好学,自强不息~

上一篇:检查主机存活状态
下一篇:检查网站可用性

发表评论

海外服务器,免备案,中国电信 CN2 GIA 高级回国优化专线

香港云服务器立即订购

4核4G  50G 2M (CN2 GIA)  335/月

8核8G  50G  2M(CN2  GIA)  613/月

香港物理服务器立即订购

Xeon L5630 *2    16GB DDR3    1TB HDD 或 240G SSD  10 Mbps  3IP 1500/月

8 核 16 线程 (2.13GHz)

Xeon E5 2650  16GB DDR3   1TB HDD/240G SSD/500G SSD  10 Mbps  3IP 2000/月

8 核 16 线程 (2.00GHz)