1、获取cpu使用率脚本

#!/bin/sh
#
#脚本功能描述:依据/proc/stat文件获取并计算CPU使用率
#
#CPU时间计算公式:CPU_TIME=user+system+nice+idle+iowait+irq+softirq
#CPU使用率计算公式:cpu_usage=(idle2-idle1)/(cpu2-cpu1)*100
#默认时间间隔
TIME_INTERVAL=5
time=$(date "+%Y-%m-%d %H:%M:%S")
LAST_CPU_INFO=$(cat /proc/stat | grep -w cpu | awk '{print $2,$3,$4,$5,$6,$7,$8}')
LAST_SYS_IDLE=$(echo $LAST_CPU_INFO | awk '{print $4}')
LAST_TOTAL_CPU_T=$(echo $LAST_CPU_INFO | awk '{print $1+$2+$3+$4+$5+$6+$7}')
sleep ${TIME_INTERVAL}
NEXT_CPU_INFO=$(cat /proc/stat | grep -w cpu | awk '{print $2,$3,$4,$5,$6,$7,$8}')
NEXT_SYS_IDLE=$(echo $NEXT_CPU_INFO | awk '{print $4}')
NEXT_TOTAL_CPU_T=$(echo $NEXT_CPU_INFO | awk '{print $1+$2+$3+$4+$5+$6+$7}')

#系统空闲时间
SYSTEM_IDLE=`echo ${NEXT_SYS_IDLE} ${LAST_SYS_IDLE} | awk '{print $1-$2}'`
#CPU总时间
TOTAL_TIME=`echo ${NEXT_TOTAL_CPU_T} ${LAST_TOTAL_CPU_T} | awk '{print $1-$2}'`
CPU_USAGE=`echo ${SYSTEM_IDLE} ${TOTAL_TIME} | awk '{printf "%.2f", 100-$1/$2*100}'`
echo "CPU Usage:${CPU_USAGE}%"$time

cpu=`echo "$CPU_USAGE" | cut -d "." -f 1`
if [ $cpu -gt 80 ]
then
    echo "警告,您当前CPU使用率${CPU_USAGE}%,已严重超标"$time | mail -s "Title" 2161476682@qq.com  #此处为发送邮件地址
else

2、shell脚本获取内存使用率

#!/bin/bash

#获取内存使用率的脚本

#2022/7/14

time=$(date "+%Y-%m-%d %H:%M:%S")
memoryUsed=`free -m | sed -n '2p' | awk '{printf "%f\n",($3)/$2*100}'`

echo "memory USE:${memoryUsed}% ${time}"
memory=`echo "$memoryUsed" | cut -d "." -f 1`
if [ $memory -gt 5 ]
then
    echo "警告,您当前CPU使用率${memoryUsed}%,已严重超标"$time | mail -s "Error" 2161476682@qq.com
else
    exit
fi

3、shell脚本获取磁盘使用率

#!/bin/bash

#获取磁盘使用率脚本
#2022/7/14

time=$(date "+%Y-%m-%d %H:%M:%S")
diskUsage=`df -h | sed -n '2p' | awk '{print $5}'`
disk=`echo "$diskUsage" | cut -d "%" -f 1`
echo "$disk"
if [ $disk -gt 10 ]   #此处10可更改大小
then
     echo "警告,您当前磁盘使用率${disk}%,已严重超标"$time | mail -s "Error" 2161476682@qq.com
else
    exit
fi

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐