shell脚本监控CPU和内存利用率

1. 借助vmstat工具监控CPU利用率

#!/bin/bash

DATE=$(date +%F" "%H:%M)    //查询脚本执行的日期赋值

MAIL="example@mail.com"      // 定义一个邮箱用来接受CPU信息

if ! which vmstat &>/dev/null; then    //判断vmstat 命令是否存在

  echo "vmstat command no found, Please install procps package." exit 1

fi

US=$(vmstat |awk 'NR==3{print $13}')    //用户进程使用CPU的时间

SY=$(vmstat |awk 'NR==3{print $14}')     //系统进程使用CPU的时间

USE=$(($US+$SY))            //CPU的使用时间

if [ $USE -ge 50 ]; then            //判断CPU的进程使用时间是否大于50,大于50就打印时间和CPU进程的使用时间发送给指定的邮箱

  echo "                  

  Date: $DATE

  CPU utilization $USE " | mail -s "CPU Monitor" $MAIL    

fi

 

 

2. 用free命监控内存

#!/bin/bash

DATE=$(date +%F" "%H:%M)

MAIL="example@mail.com"

TOTAL=$(free -m |awk '/Mem/{print $2}')      //内存总的大小

USE=$(free -m |awk '/Mem/{print $3-$6}')     //使用的物理内存大小(used - buff-cache)

FREE=$(($TOTAL-$USE))             // 内存小于1G发送报警邮件

if [ $FREE -lt 1024 ]; then

   echo " Date: $DATE

   Total=$TOTAL,

    Use=$USE,

    Free=$FREE " | mail -s "Memory Monitor" $MAIL

fi

posted @ 2020-07-20 10:05  duang里个duang  阅读(1619)  评论(0编辑  收藏  举报