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 |
|