1. <em id="vzzs9"></em>
      <tbody id="vzzs9"></tbody>

    2. <span id="vzzs9"></span>
      <progress id="vzzs9"></progress>
      首頁 運維雜談Linux?——?用于自動監控磁盤使用情況的 Shell 腳本

      Linux?——?用于自動監控磁盤使用情況的 Shell 腳本

      運維派隸屬馬哥教育旗下專業運維社區,是國內成立最早的IT運維技術社區,歡迎關注公眾號:yunweipai
      領取學習更多免費Linux云計算、Python、Docker、K8s教程關注公眾號:馬哥linux運維

      如果在服務器上運行關鍵任務,那么監控和通知管理員磁盤使用情況很重要。本文介紹編寫一個腳本來自動監控并在達到閾值時將報告發送到自己的郵箱。在文章中,我們寫一個 shell 腳本,它在 crontab 中指定固定時間間隔監控磁盤使用情況,并在報告達到指定的閾值時通過電子郵件發送報告。首先,需要確保系統安裝了mail命令和postfix發送郵件服務。下面是在Centos8中安裝的命令:

      [root@localhost ~]# yum -y install mailx postfix
      [root@localhost ~]# systemctl enable --now postfix

      下面使用mail命令發送郵件測試:

      [root@localhost ~]# echo "This message will go into the body of the mail." | mail -s "Testing from the server." root@localhos
      Linux?——?用于自動監控磁盤使用情況的 Shell 腳本插圖

      本文不講解如何配置smtp服務。

      測試磁盤使用情況的腳本

      以下是測試磁盤使用情況并將報告發送到指定郵箱的腳本。腳本的解釋在代碼片段之后給出。

      [root@localhost ~]# vim  disk-monitor.sh
      #!/bin/bash

      MAILID="admin@linuxprobe.com"

      VALUE=80

      SERVERNAME=$(hostname)

      MAIL=/bin/mail

      for line in $(df -hP | egrep '^/dev/' | awk '{ print $1 "_:_" $5 }')
        do
          FILESYSTEM=$(echo "$line" | awk -F"_:_" '{ print $1 }')
          DISK_USAGE=$(echo "$line" | awk -F"_:_" '{ print $2 }' | cut -d'%' -f1 )

          if [ $DISK_USAGE -ge $VALUE ];
          then
            EMAIL="$SERVERNAME - $(date): $FILESYSTEM Exceeded the threshold VALUE\n"
            EMAIL="$EMAIL\n Usage Details\n Current Usage:($DISK_USAGE%) Threshold value: ($VALUE%)"
            echo -e "$EMAIL" | $MAIL -s ""$SERVERNAME" Disk Usage Alert: Needs Attention!" "$MAILID"
          elif [ $DISK_USAGE -lt $VALUE ];
          then
            EMAIL="$EMAIL\n$FILESYSTEM ($DISK_USAGE%) is lessthan the threshold ($VALUE%)"
            EMAIL="$EMAIL\n"
            echo -e "$EMAIL" | $MAIL -s ""$SERVERNAME" Disk Usage Alert: Threshold Not Reached" "$MAILID"
        fi
      done

      監控腳本說明

      上述腳本使用df -hP命令獲取內存信息。環境變量MAILID保存必須在其中發送報告的郵箱地址。VALUE 保存要設置的閾值。SERVERNAME 保存服務器的主機名,用于電子郵件通知中的服務器標識。使用 for 循環,它將遍歷所有具有“/dev”掛載點的文件系統。然后它將文件系統名稱和磁盤使用百分比保存到兩個變量FILESYSTEM 和 DISK_USAGE。使用上述變量,磁盤使用量等于閾值 VALUE 變量。根據結果,將向指定的郵箱發送一封電子郵件。

      監控腳本執行

      下面需要修改一下disk-monitor.sh腳本的權限,為它添加可執行權限:

      [root@localhost ~]# chmod +x disk-monitor.s

      使用下面方式運行腳本:

      [root@localhost ~]# ./disk-monitor.s

      自動化監控過程

      手動運行腳本沒有任何意義,因為我們希望自動運行該過程。自動運行該過程的最佳方法是將腳本添加到 crontab配置文件中。

      使用下面方式打開crontab:

      [root@localhost ~]# crontab -

      將下面內容添加到配置文件中: <pre< style=”box-sizing: border-box;”>*/5 * * * * sh /home/ec2-user/disk-monitor.sh</pre<>

      Linux?——?用于自動監控磁盤使用情況的 Shell 腳本插圖1

      轉自:運維光頭強,侵刪。

      Linux?——?用于自動監控磁盤使用情況的 Shell 腳本插圖2

      本文鏈接:http://www.abandonstatusquo.com/41747.html

      網友評論comments

      發表評論

      您的電子郵箱地址不會被公開。

      暫無評論

      Copyright ? 2012-2022 YUNWEIPAI.COM - 運維派 京ICP備16064699號-6
      掃二維碼
      掃二維碼
      返回頂部
      久久久久亚洲国内精品|亚洲一区二区在线观看综合无码|欧洲一区无码精品色|97伊人久久超碰|一级a爱片国产亚洲精品