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