用於自動監控磁碟使用情況的 Shell 指令碼
我們寫一個 ,它在 crontab 中指定固定時間間隔監控磁碟使用情況,並在報告達到指定的閾值時通過電子郵件傳送報告。
首先,需要確保系統安裝了
mail
和
postfix
傳送郵件服務。下面是在
8中安裝的
:
[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@localhost
本文不講解如何配置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.sh
使用下面方式執行指令碼:
[root@localhost ~]# ./disk-monitor.sh
手動執行指令碼沒有任何意義,因為我們希望自動執行該過程。自動執行該過程的最佳方法是將指令碼新增到
crontab
配置檔案中。
使用下面方式開啟crontab:
[root@localhost ~]# crontab -e
將下面內容新增到配置檔案中: <1pre<1 style="box-sizing: border-box;">*/5 * * * * sh /home/ec2-user/disk-monitor.sh
在文章中我們寫了一個 shell 指令碼,它在 crontab 中指定固定時間間隔監控磁碟使用情況,並在報告達到指定的閾值時通過電子郵件傳送報告。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2838974/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用 Linux Shell 指令碼來監控磁碟使用情況併傳送郵件Linux指令碼
- 【shell】磁碟監控指令碼指令碼
- PowerShell 指令碼來監控 CPU、記憶體和磁碟使用情況:指令碼記憶體
- 監控磁碟使用率的shell指令碼指令碼
- 用 Bash 指令碼監控 Linux 上的記憶體使用情況指令碼Linux記憶體
- 監視磁碟使用情況
- Linux中監控磁碟分割槽及使用情況的命令有哪些?Linux
- Linux中監控磁碟分割槽和使用情況的幾個工具Linux
- shell指令碼監控啟動停止weblogic服務指令碼Web
- 監控java程式啟動時的CPU使用情況Java
- 如何用bash shell 指令碼監控 Linux記憶體、磁碟和 CPU?指令碼Linux記憶體
- Shell 系統資訊監控指令碼指令碼
- shell指令碼:監控MySQL服務是否正常指令碼MySql
- Shell指令碼監控MySQL主從狀態指令碼MySql
- 利用Bash指令碼監控Linux伺服器的記憶體使用情況的相關資料指令碼Linux伺服器記憶體
- 分享實用監控指令碼:使用Shell檢查程式是否存在指令碼
- 查詢表空間使用情況的指令碼指令碼
- 使用Shell指令碼程式監控網站URL是否正常指令碼網站
- 利用 Shell 指令碼來監控 Linux 系統的記憶體指令碼Linux記憶體
- 監控 Python 記憶體使用情況和程式碼執行時間!Python記憶體
- 關於前端指令碼異常監控的思考前端指令碼
- 自動化指令碼安裝mysql shell指令碼範例指令碼MySql
- 透過shell指令碼監控日誌切換頻率指令碼
- 用於管理應用程式得shell指令碼指令碼
- 在Linux中,如何監控系統資源使用情況?Linux
- Zabbix 5.0:磁碟自動發現和讀寫監控
- shell 備份檔案指令碼+自動清理指令碼
- linux實現shell指令碼監控磁碟記憶體達到閾值時清理catalina.out日誌Linux指令碼記憶體
- Linux下針對伺服器網路卡流量和磁碟的監控指令碼Linux伺服器指令碼
- 系統服務監控指標--load、CPU利用率、磁碟剩餘空間、磁碟I/O、記憶體使用情況等指標記憶體
- 基於Ping和Telnet/NC的監控指令碼案例分析指令碼
- 每天自動統計表空間的使用情況
- 案例八:Shell自動化管理賬號指令碼指令碼
- 如何讓shell指令碼自殺指令碼
- [shell]shell指令碼實現每天自動抽取資料插入hive表指令碼Hive
- CentOS 系統的磁碟空間佔用情況查詢CentOS
- Dutree – Linux上的命令列磁碟使用情況分析工具Linux命令列
- PostgreSQL之鎖監控指令碼SQL指令碼