人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

bash腳本如何監(jiān)控cup/內(nèi)存/磁盤使用率

發(fā)布日期:2022-01-29 00:47 | 文章來源:站長之家

這篇博客中所寫的,在實際工作中并沒有什么卵用,工作中并不會用到這種腳本去監(jiān)控。不過自己寫一遍,可以讓初學者對CPU、內(nèi)存、磁盤等一些基礎知識和基礎命令更加了解。

#!/bin/bash
#獲取內(nèi)存情況
mem_total=`free | awk 'NR==2{print $2}'` #獲取內(nèi)存總大小
mem_use=`free  | awk 'NR==2{print $3}'` #獲取內(nèi)存使用大小
#統(tǒng)計內(nèi)存使用率 (使用大小/總大小)
mem_use_rate=`awk 'BEGIN{print('$mem_use'/'$mem_total')*100}'| awk '{print int($0)}'`
#echo $mem_use_rate ----------
#獲取磁盤使用率
disk_use_rate_str=`df -h | grep /dev/vda1 | awk -F '[ %]+' '{print $5}'| awk '{print int($0)}'`
#獲取cpu使用率
cpu_use_rate=`top -n 1 | grep Cpu |awk '{print $2}'| awk '{print int($0)}'`
#報警時間
file_log=/home/error.log  #提前創(chuàng)建
now_time=`date '+%F %T'`
function send_mail(){
}

function check(){
  if [[ "men_use_rate" > 50 ]] || [[ "disk_use_rate" > 50 ]] || [[ "cpu_use_rate" > 50 ]];then
 echo "報警時間:"$now_time > $file_log
 echo "cpu使用率:${cpu_use_rate}% --> 磁盤使用率:${disk_use_rate}% --> 內(nèi)存使用率:${men_use_rate}%"
 send_mail
  fi
}
function main(){
  check
}
main

注: awk '{print int($0)}'

可以將浮點數(shù)轉(zhuǎn)為整數(shù) 在進行比較大小 shell 不支持浮點直接與整數(shù)進行比較
需要用的bc 的計算方式
if [[ “men_use_rate” > 50 ]] 等同于 if [ $men_use_rate > 50 ]

bc 例:

#!/bin/bash
var1=20
var2=3.14159
var3=`echo "scale=0;$var2 - $var1 " | bc`
echo $var3
var4=`echo "$var1 < $var2"|bc`
echo $var4

查看消耗內(nèi)存最多的前40個進程:

ps auxw|head -1;ps auxw|sort -rn -k4|head -40

自動任務做一個基礎資源告警腳本

#!/bin/bash
now=`date -u -d"+8 hour" +'%Y-%m-%d %H:%M:%S'`
#cpu使用閾值
cpu_warn='85'
#mem空閑閾值
mem_warn='1000'
#disk使用閾值
disk_warn='90'
#---cpu
item_cpu () {
cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $8}'|cut -f 1 -d "."`
cpu_use=`expr 100 - $cpu_idle`
echo "$now 當前cpu使用率為 $cpu_use" >> /tmp/monitoring.log
if [ $cpu_use -gt $cpu_warn ]
 then
  echo "cpu warning!!!"
 else
  echo "cpu ok!!!"
fi
}
#---mem
item_mem () {
#MB為單位
mem_free=`free -m | grep "Mem" | awk '{print $4+$6}'`
echo "$now 當前內(nèi)存剩余空間為 ${mem_free}MB" >> /tmp/monitoring.log
if [ $mem_free -lt $mem_warn  ]
 then
  echo "mem warning!!!"
 else
  echo "mem ok!!!"
 
fi
}
#---disk
item_disk () {
disk_use=`df -P | grep /dev/vda2 | grep -v -E '(tmp|boot)' | awk '{print $5}' | cut -f 1 -d "%"`
echo "$now 當前磁盤使用率為 $disk_use" >> /tmp/monitoring.log
if [ $disk_use -gt $disk_warn ]
 then
  echo "disk warning!!!"
 else
  echo "disk ok!!!"
  
fi

}
item_cpu
item_mem
item_disk

利用free工具監(jiān)控內(nèi)存利用率,超過80報警并提取出占用內(nèi)存最高的前十進程。

代碼如下:

#!/bin/bash
#
total=$(free -m | sed -n '2p' | awk '{print $2}')
used=$(free -m | sed -n '2p' | awk '{print $3}')
free=$(free -m | sed -n '2p' | awk '{print $4}')
shared=$(free -m | sed -n '2p' | awk '{print $5}')
buff=$(free -m | sed -n '2p' | awk '{print $6}')
cached=$(free -m | sed -n '2p' | awk '{print $7}')
rate=`echo "scale=2;$used/$total" | bc | awk -F. '{print $2}'`
echo -e "total\tused\tfree\tshared\tbuffer\tavailable"
echo -e "${total}M\t${used}M\t${free}M\t${shared}M\t${buff}M\t${cached}M\nrate:${rate}%"
if [ $rate -ge 80 ]
then echo "Memory Warn"
 ps aux | grep -v USER | sort -rn -k4 | head
fi

利用df命令監(jiān)控磁盤利用率,超過80報警。

df :顯示磁盤分區(qū)上的可使用的磁盤空間。

-h 以更易讀的方式顯示;

-P 使用POSIX的輸出格式。

#!/bin/bash
#
DEV=`df -hP | grep '^/dev/*' | cut -d' ' -f1 | sort`
for I in $DEV
do dev=`df -Ph | grep $I | awk '{print $1}'`
size=`df -Ph | grep $I | awk '{print $2}'`
used=`df -Ph | grep $I | awk '{print $3}'`
free=`df -Ph | grep $I | awk '{print $4}'`
rate=`df -Ph | grep $I | awk '{print $5}'`
mount=`df -Ph | grep $I | awk '{print $6}'`
echo -e "$I:\tsize:$size\tused:$used\tfree:$free\trate:$rate\tmount:$mount"
F=`echo $rate | awk -F% '{print $1}'`
if [ $F -ge 80 ];then
 echo "$mount Warn"
 else echo "It's OK"
fi
done

到此這篇關于bash腳本如何監(jiān)控cup/內(nèi)存/磁盤使用率的文章就介紹到這了,更多相關bash監(jiān)控cup/內(nèi)存/磁盤使用率內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!

美國穩(wěn)定服務器

版權聲明:本站文章來源標注為YINGSOO的內(nèi)容版權均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。

相關文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部