亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

shell編程實戰之如何監控磁盤分區的使用率

發布時間:2020-09-22 09:18:22 來源:億速云 閱讀:207 作者:小新 欄目:建站服務器

這篇文章將為大家詳細講解有關shell編程實戰之如何監控磁盤分區的使用率,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

不知道大家有沒有碰到過磁盤分區寫滿,導致新數據寫入不了,造成網站出現了問題。之前自己有幾次碰到過這種情況,自己當時緊急解決辦法是:刪除網站的日志文件,刪除了MySQL的binlog日志。

當然我們是不希望發生此類問題的,如果網站總出現不穩定或打不開情況,會給用戶一種不靠譜的感覺。所以,對于磁盤分區的使用,我們需要實時監控,當超過預設值時,就發送份郵件或短信給管理員,將錯誤扼殺至搖籃里。

對于此腳本的編寫是很簡單的,主要一點就是獲取到磁盤分區的使用率。我們知道df命令可以列出各個分區的空間使用情況:

# df 
Filesystem     1K-blocks     Used Available Use% Mounted on
devtmpfs         3986648        0   3986648   0% /dev
tmpfs            3999984        0   3999984   0% /dev/shm
tmpfs            3999984      528   3999456   1% /run
tmpfs            3999984        0   3999984   0% /sys/fs/cgroup
/dev/vda1       41931756 17576208  24355548  42% /
/dev/vdb1       52403200   476572  51926628   1% /data
/dev/vdb2      104806400 29255772  75550628  28% /www
tmpfs             799996        0    799996   0% /run/user/0
/dev/vdb3       52402180   398576  52003604   1% /mnt

我們可以看到各個分區的空間使用情況。然后接口grep命令以及awk命令,過濾掉其他信息,只留下各個分區的使用情況信息。

我們只想得到以/dev/開頭的分區信息

# df | grep ^/dev
/dev/vda1       41931756 17576264  24355492  42% /
/dev/vdb1       52403200   476572  51926628   1% /data
/dev/vdb2      104806400 29255980  75550420  28% /www
/dev/vdb3       52402180   398576  52003604   1% /mnt

然后繼續使用awk命令過濾不想要的信息

# df | grep ^/dev | awk '{print $1":"$5}'
/dev/vda1:42%
/dev/vdb1:1%
/dev/vdb2:28%
/dev/vdb3:1%

拿到各個分區的使用率后,下面就是對其進行循環遍歷,依次判斷各個分區的使用情況。

下面給出完成的代碼:

#!/bin/bash
# 監控分區的空間使用情況,超過預設值告警
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:~/bin
export LANG=en

# 分區空間使用率閥值
USE_LIM=70
while ((1))
do
    disks=$( df | grep ^/dev | awk '{print $1":"$5}')
    for disk in $disks
    do
        used=$(echo $disk | cut -d: -f2 | cut -d'%' -f1)
        
        if [ "$used" -ge "$USE_LIM" ];then
            # 調用告警腳本,這里直接用echo來替代了
            echo "$(echo $disk | cut -d: -f1) is used $used%"
        fi
    done
    
    sleep 10
done

注意:一般我們服務器上用的語系都是英文的,特別是在編寫shell腳本的時候,建議加上這樣一行

export LANG=en

因為我們是要做實時的監控,所以腳本里使用了死循環,表示此腳本不會停會一直循環執行。當然,執行速度也是要做限制的,不然占用太多服務器資源就不太好了。所以這里使用了sleep 10,表示10秒監控一次。

另外這里還要一點需要注意,就是過濾掉百分號%。這里我們使用了cut命令來過濾掉%,然后拿到純數字型的分區使用率和預設值做比較。

關于shell編程實戰之如何監控磁盤分區的使用率就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

益阳市| 中宁县| 乐昌市| 博湖县| 兴山县| 仙桃市| 江门市| 京山县| 盐边县| 乐至县| 保山市| 阳东县| 临沂市| 读书| 小金县| 佳木斯市| 沙湾县| 东山县| 乌审旗| 云浮市| 都兰县| 四子王旗| 鄢陵县| 且末县| 文安县| 博爱县| 泸溪县| 布尔津县| 左云县| 辽宁省| 博兴县| 明溪县| 武冈市| 临清市| 敦化市| 永城市| 洪泽县| 闵行区| 彩票| 凌云县| 如皋市|