获取磁盘,内存,CPU使用情况的shell脚本

    技术2023-12-20  77

    获取磁盘使用情况

    #!/bin/bash # author: coco # date: 2020/07/03 # usage: monitor memory status DATE=$(date +'%Y_%m_%d %H:%M:%S') IPADDR=$(ifconfig | grep inet | awk 'NR==1{ print $2 }') MAIL="XXX@163.com" useRate=$(df -Th | awk '{sum += $6} END {print sum}') if [[ ${useRate} -ge 90 ]];then echo " Date: ${DATE} Host: ${HOSTNAME}: ${IPADDR} Problem: Memory using rate: up ${useRate}% " | mail -s "CPU Monitor Warnning" ${MAIL} fi

    获取内存的使用情况

    #!/bin/bash # author: coco # date: 2020/07/03 # usage: monitor memory status DATE=$(date +'%Y_%m_%d %H:%M:%S') IPADDR=$(ifconfig | grep inet | awk 'NR==1{ print $2 }') MAIL="xxx@163.com" TOTAL=$(free -mw | awk 'NR==2{ print $2 }') USE=$(free -mw | awk 'NR==2{ print $3 }') FREE=$(free -mw | awk 'NR==2{ print $4 }') CACHE=$(free -mw | awk 'NR==2{ print $7 }') useRate=$(echo "((${USE}+${CACHE})/${TOTAL})*100" | bc -ql) freeRate=$(echo "(${FREE}/${TOTAL})*100" | bc -ql) if [[ ${FREE} -le 100 ]];then echo " Date: ${DATE} Host: ${HOSTNAME}: ${IPADDR} Problem: Memory using rate: ${useRate}% Memory free rate: ${freeRate}% " | mail -s "CPU Monitor Warnning" ${MAIL} fi

    获取CPU的使用情况

    #!/bin/bash # author: coco # date: 2020/07/03 # usage: monitor memory status DATE=$(date +'%Y_%m_%d %H:%M:%S') IPADDR=$(ifconfig | grep inet | awk 'NR==1{ print $2 }') MAIL="XXX@163.com" ATE=$(date +'%Y_%m_%d %H:%M:%S') IPADDR=$(ifconfig | grep inet | awk 'NR==1{ print $2 }') MAIL="bavduer@163.com" # 检测vmstat命令是否存在 if ! which vmstat &>/dev/null; then yum -y install procps-ng &>/dev/null if [ $? -eq 0 ];then echo "vmstat already installed" fi fi US=$(vmstat | awk 'NR==3{ print $13 }') SY=$(vmstat | awk 'NR==3{ print $14 }') ID=$(vmstat | awk 'NR==3{ print $15 }') WA=$(vmstat | awk 'NR==3{ print $16 }') ST=$(vmstat | awk 'NR==3{ print $17 }') useTotal=$((${US}+${SY})) if [[ ${useTotal} -ge 70 ]];then echo " Date: ${DATE} Host: ${HOSTNAME}: ${IPADDR} Problem: CPU using rate: ${useTotal}% " | mail -s "CPU Monitor Warnning" ${MAIL} fi
    Processed: 0.045, SQL: 10