日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux磁盘使用情况脚本,技术|用 Linux Shell 脚本来监控磁盘使用情况并发送邮件...

發布時間:2023/12/10 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux磁盘使用情况脚本,技术|用 Linux Shell 脚本来监控磁盘使用情况并发送邮件... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

市場上有很多用來監控 Linux 系統的監控工具,當系統到達閥值后它將發送一封郵件。它監控所有的東西例如 CPU 利用率、內存利用率、交換空間利用率、磁盤空間利用率等等。然而,它更適合小環境和大環境。

想一想如果你只有少量系統,那么什么是最好的方式來應對這種情況。

是的,我們想要寫一個 shell 腳本 來實現。

在這篇指南中我們打算寫一個 shell 腳本來監控系統的磁盤空間使用率。當系統到達給定的閥值,它將給對應的郵件地址發送一封郵件。在這篇文章中我們總共添加了四個 shell 腳本,每個用于不同的目的。之后,我們會想出其他 shell 腳本來監控 CPU,內存和交換空間利用率。

在此之前,我想澄清一件事,根據我觀察的磁盤空間使用率 shell 腳本使用情況。

大多數用戶在多篇博客中評論說,當他們運行磁盤空間使用率腳本時他們獲得了以下錯誤。

# sh /opt/script/disk-usage-alert-old.sh

/dev/mapper/vg_2g-lv_root

test-script.sh: line 7: [: /dev/mapper/vg_2g-lv_root: integer expression expected

/ 9.8G

是的,這是對的。甚至,當我第一次運行這個腳本的時候我遇到了相同的問題。之后,我發現了根本原因。

當你在基于 RHEL 5 & RHEL 6 的系統上運行包含用于磁盤空間警告的 df -h 或 df -H 的 shell 腳本中時,你會發現上述錯誤信息,因為輸出格式不對,查看下列輸出。

為了解決這個問題,我們需要用 df -Ph (POSIX 輸出格式),但是默認的 df -h 在基于 RHEL 7 的系統上運行的很好。

# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/vg_2g-lv_root

10G 6.7G 3.4G 67% /

tmpfs 7.8G 0 7.8G 0% /dev/shm

/dev/sda1 976M 95M 830M 11% /boot

/dev/mapper/vg_2g-lv_home

5.0G 4.3G 784M 85% /home

/dev/mapper/vg_2g-lv_tmp

4.8G 14M 4.6G 1% /tmp

方法一:Linux Shell 腳本來監控磁盤空間使用率和發送郵件

你可以使用下列 shell 腳本在 Linux 系統中來監控磁盤空間使用率。

當系統到達給定的閥值限制時,它將發送一封郵件。在這個例子中,我們設置閥值為 60% 用于測試目的,你可以改變這個限制來符合你的需求。

如果超過一個文件系統到達給定的閥值,它將發送多封郵件,因為這個腳本使用了循環。

同樣,替換你的郵件地址來獲取這份警告。

# vi /opt/script/disk-usage-alert.sh

#!/bin/sh

df -Ph | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5,$1 }' | while read output;

do

echo $output

used=$(echo $output | awk '{print $1}' | sed s/%//g)

partition=$(echo $output | awk '{print $2}')

if [ $used -ge 60 ]; then

echo "The partition \"$partition\" on $(hostname) has used $used% at $(date)" | mail -s "Disk Space Alert: $used% Used On $(hostname)" [email protected]

fi

done

輸出:我獲得了下列兩封郵件警告。

The partition "/dev/mapper/vg_2g-lv_home" on 2g.CentOS7 has used 85% at Mon Apr 29 06:16:14 IST 2019

The partition "/dev/mapper/vg_2g-lv_root" on 2g.CentOS7 has used 67% at Mon Apr 29 06:16:14 IST 2019

最終添加了一個 cronjob 來自動完成。它會每 10 分鐘運行一次。

# crontab -e

*/10 * * * * /bin/bash /opt/script/disk-usage-alert.sh

方法二:Linux Shell 腳本來監控磁盤空間使用率和發送郵件

作為代替,你可以使用下列的 shell 腳本。對比上面的腳本我們做了少量改變。

# vi /opt/script/disk-usage-alert-1.sh

#!/bin/sh

df -Ph | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5,$1 }' | while read output;

do

max=60%

echo $output

used=$(echo $output | awk '{print $1}')

partition=$(echo $output | awk '{print $2}')

if [ ${used%?} -ge ${max%?} ]; then

echo "The partition \"$partition\" on $(hostname) has used $used at $(date)" | mail -s "Disk Space Alert: $used Used On $(hostname)" [email protected]

fi

done

輸出:我獲得了下列兩封郵件警告。

The partition "/dev/mapper/vg_2g-lv_home" on 2g.CentOS7 has used 85% at Mon Apr 29 06:16:14 IST 2019

The partition "/dev/mapper/vg_2g-lv_root" on 2g.CentOS7 has used 67% at Mon Apr 29 06:16:14 IST 2019

最終添加了一個 cronjob 來自動完成。它會每 10 分鐘運行一次。

# crontab -e

*/10 * * * * /bin/bash /opt/script/disk-usage-alert-1.sh

方法三:Linux Shell 腳本來監控磁盤空間使用率和發送郵件

我更喜歡這種方法。因為,它工作起來很有魔力,你只會收到一封關于所有事的郵件。

這相當簡單和直接。

*/10 * * * * df -Ph | sed s/%//g | awk '{ if($5 > 60) print $0;}' | mail -s "Disk Space Alert On $(hostname)" [email protected]

輸出: 我獲得了一封關于所有警告的郵件。

Filesystem Size Used Avail Use Mounted on

/dev/mapper/vg_2g-lv_root 10G 6.7G 3.4G 67 /

/dev/mapper/vg_2g-lv_home 5.0G 4.3G 784M 85 /home

方法四:Linux Shell 腳本來監控某個分區的磁盤空間使用情況和發送郵件

# vi /opt/script/disk-usage-alert-2.sh

#!/bin/bash

used=$(df -Ph | grep '/dev/mapper/vg_2g-lv_dbs' | awk {'print $5'})

max=80%

if [ ${used%?} -ge ${max%?} ]; then

echo "The Mount Point "/DB" on $(hostname) has used $used at $(date)" | mail -s "Disk space alert on $(hostname): $used used" [email protected]

fi

輸出: 我得到了下面的郵件警告。

The partition /dev/mapper/vg_2g-lv_dbs on 2g.CentOS6 has used 82% at Mon Apr 29 06:16:14 IST 2019

最終添加了一個 cronjob 來自動完成這些工作。它將每 10 分鐘運行一次。

# crontab -e

*/10 * * * * /bin/bash /opt/script/disk-usage-alert-2.sh

注意: 你將在 10 分鐘后收到一封郵件警告,因為這個腳本被計劃為每 10 分鐘運行一次(但也不是精確的 10 分鐘,取決于時間)。

例如這個例子。如果你的系統在 8:25 到達了限制,你將在 5 分鐘后收到郵件警告。希望現在講清楚了。

本文由 LCTT 原創編譯,Linux中國 榮譽推出

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的linux磁盘使用情况脚本,技术|用 Linux Shell 脚本来监控磁盘使用情况并发送邮件...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。