91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

乌兰浩特市| 华蓥市| 嘉义县| 子洲县| 遵化市| 安平县| 永年县| 汨罗市| 西乌珠穆沁旗| 孝昌县| 阿尔山市| 黄浦区| 泾源县| 天等县| 柳林县| 兴宁市| 彰化市| 托克托县| 镇雄县| 永修县| 昌宁县| 云林县| 资溪县| 资源县| 芦山县| 天峨县| 色达县| 新野县| 绵阳市| 周口市| 嘉兴市| 宁城县| 天水市| 呼图壁县| 元谋县| 彭州市| 鱼台县| 应城市| 弋阳县| 都安| 襄城县|