最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2021年10月21日 09:50:43   作者:weixin_42849517  
本文主要介紹了bash腳本如何監(jiān)控cup/內(nèi)存/磁盤(pán)使用率,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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

#!/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)計(jì)內(nèi)存使用率 (使用大小/總大小)
mem_use_rate=`awk 'BEGIN{print('$mem_use'/'$mem_total')*100}'| awk '{print int($0)}'`
#echo $mem_use_rate ----------

#獲取磁盤(pán)使用率
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)}'`

#報(bào)警時(shí)間
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 "報(bào)警時(shí)間:"$now_time > $file_log
                echo "cpu使用率:${cpu_use_rate}% --> 磁盤(pán)使用率:${disk_use_rate}% --> 內(nèi)存使用率:${men_use_rate}%"
                send_mail
        fi
}

function main(){
        check
}
main

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

可以將浮點(diǎn)數(shù)轉(zhuǎn)為整數(shù) 在進(jìn)行比較大小 shell 不支持浮點(diǎn)直接與整數(shù)進(jìn)行比較
需要用的bc 的計(jì)算方式
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個(gè)進(jìn)程:

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

自動(dòng)任務(wù)做一個(gè)基礎(chǔ)資源告警腳本

#!/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 當(dāng)前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 當(dāng)前內(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 當(dāng)前磁盤(pán)使用率為 $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)存利用率,超過(guò)80報(bào)警并提取出占用內(nèi)存最高的前十進(jìn)程。

代碼如下:

#!/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)控磁盤(pán)利用率,超過(guò)80報(bào)警。

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

  -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

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

相關(guān)文章

  • Linux中文件權(quán)限目錄權(quán)限的意義及權(quán)限對(duì)文件目錄的意義

    Linux中文件權(quán)限目錄權(quán)限的意義及權(quán)限對(duì)文件目錄的意義

    本文給大家介紹Linux中文件目錄權(quán)限的意義及Linux的權(quán)限對(duì)于文件與目錄的意義,涉及到linux 文件、目錄、權(quán)限相關(guān)知識(shí),對(duì)本文感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01
  • 詳解Shell if else語(yǔ)句的具體使用方法

    詳解Shell if else語(yǔ)句的具體使用方法

    這篇文章主要介紹了詳解Shell if else語(yǔ)句的具體使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • shell中set設(shè)置-e和 -x的用法

    shell中set設(shè)置-e和 -x的用法

    本文主要介紹了shell中set設(shè)置-e和 -x的用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • shell一鍵部署Zabbix的實(shí)現(xiàn)步驟

    shell一鍵部署Zabbix的實(shí)現(xiàn)步驟

    本文主要介紹了shell一鍵部署Zabbix的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • shell腳本批量創(chuàng)建用戶的方法小結(jié)

    shell腳本批量創(chuàng)建用戶的方法小結(jié)

    有些面試題中會(huì)問(wèn)到批量創(chuàng)建用戶的題目,大體是用循環(huán)去進(jìn)行創(chuàng)建,但有時(shí)也會(huì)有一些額外的附加條件,下面這篇文章主要給大家介紹了關(guān)于shell腳本批量創(chuàng)建用戶的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • Shell中統(tǒng)計(jì)字符串中單詞的個(gè)數(shù)的幾種方法

    Shell中統(tǒng)計(jì)字符串中單詞的個(gè)數(shù)的幾種方法

    今天小編就為大家分享一篇關(guān)于Shell中統(tǒng)計(jì)字符串中單詞的個(gè)數(shù)的幾種方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • 在shell腳本中獲取上個(gè)月最后一天的日期方法

    在shell腳本中獲取上個(gè)月最后一天的日期方法

    今天小編就為大家分享一篇在shell腳本中獲取上個(gè)月最后一天的日期方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Shell中使用exec命令的方法和用途

    Shell中使用exec命令的方法和用途

    本文主要介紹了Shell中使用exec命令的方法和用途,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • expect中為send語(yǔ)句上加變量的代碼

    expect中為send語(yǔ)句上加變量的代碼

    expect中為send語(yǔ)句上加變量,感興趣的朋友可以看看
    2013-02-02
  • 分享20個(gè)Unix/Linux 命令技巧

    分享20個(gè)Unix/Linux 命令技巧

    這篇文章主要介紹了分享20個(gè)Unix/Linux 命令技巧,需要的朋友可以參考下
    2015-04-04

最新評(píng)論

从江县| 阿坝| 青川县| 金沙县| 扎囊县| 丁青县| 磐安县| 山东| 台州市| 拉萨市| 金塔县| 玛沁县| 吴川市| 兰西县| 确山县| 封丘县| 宝山区| 腾冲县| 宝清县| 玛曲县| 衡南县| 金平| 佛山市| 望谟县| 金华市| 寿阳县| 洞口县| 金华市| 民丰县| 大名县| 格尔木市| 康定县| 明溪县| 鱼台县| 信宜市| 武威市| 阜南县| 清原| 鄂温| 邯郸县| 敖汉旗|