一.shell腳本監(jiān)控內(nèi)存和磁盤的使用率,設(shè)置閾值,并通過郵件告警
#!/bin/bash
# 設(shè)置告警閾值,單位為百分比
MEM_THRESHOLD=80
DISK_THRESHOLD=90
# 獲取內(nèi)存使用率
MEM_USED=$(free | awk 'FNR == 2 {print $3}')
MEM_TOTAL=$(free | awk 'FNR == 2 {print $2}')
MEM_USAGE=$((100 * $MEM_USED / $MEM_TOTAL))
# 獲取磁盤使用率
DISK_USAGE=$(df -h | awk 'FNR == 2 {sub(/%/, ""); print $5}')
# 檢查內(nèi)存使用率是否超過閾值
if [ $MEM_USAGE -ge $MEM_THRESHOLD ]; then
# 發(fā)送告警郵件
echo "Memory usage is above threshold ($MEM_THRESHOLD%): $MEM_USAGE%" | mail -s "Memory usage alert" you@example.com
fi
# 檢查磁盤使用率是否超過閾值
if [ ${DISK_USAGE%?} -ge $DISK_THRESHOLD ]; then
# 發(fā)送告警郵件
echo "Disk usage is above threshold ($DISK_THRESHOLD%): $DISK_USAGE" | mail -s "Disk usage alert" you@example.com
fi
二.shell腳本監(jiān)控內(nèi)存,磁盤,帶寬,io,cpu的使用率,設(shè)置閾值進行微信告警
#!/bin/bash
# 定義告警的微信號
wechat_id="your_wechat_id"
# 定義閾值,這里只是舉例,具體閾值可以根據(jù)實際情況進行設(shè)置
mem_threshold=80
disk_threshold=90
net_threshold=100
io_threshold=50
cpu_threshold=80
while true; do
# 獲取內(nèi)存使用率
mem_usage=$(free | grep Mem | awk '{printf("%.2f"), $3/$2*100}')
# 判斷內(nèi)存使用率是否超過閾值
if [ $(echo "$mem_usage > $mem_threshold" | bc -l) -eq 1 ]; then
# 發(fā)送告警信息
echo "Memory usage is high: $mem_usage%" | wechat $wechat_id
fi
# 獲取磁盤使用率
disk_usage=$(df -h | awk '$NF=="/"{printf("%.2f"), $5}')
# 判斷磁盤使用率是否超過閾值
if [ $(echo "$disk_usage > $disk_threshold" | bc -l) -eq 1 ]; then
# 發(fā)送告警信息
echo "Disk usage is high: $disk_usage%" | wechat $wechat_id
fi
# 獲取帶寬使用率
net_usage=$(ifstat | awk '$1=="ens3"{print $8}')
# 判斷帶寬使用率是否超過閾值
if [ $(echo "$net_usage > $net_threshold" | bc -l) -eq 1 ]; then
# 發(fā)送告警信息
echo "Network usage is high: $net_usage KB/s" | wechat $wechat_id
fi
# 獲取磁盤 IO 使用率
io_usage=$(iostat | awk '$1=="sda"{print $4}')
# 判斷磁盤 IO 使用率是否超過閾值
if [ $(echo "$io_usage > $io_threshold" | bc -l) -eq 1 ]; then
# 發(fā)送告警信息
echo "Disk IO usage is high: $io_usage%" | wechat $wechat_id
fi
# 獲取 CPU 使用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2+$4}')
# 判斷 CPU 使用率是否超過閾值
if [ $(echo "$cpu_usage > $cpu_threshold" | bc -l) -eq 1 ]; then
# 發(fā)送告警信息
echo "CPU usage is high: $cpu_usage%" | wechat $wechat_id
fi
# 等待一定時間再繼續(xù)監(jiān)控
sleep 10
done
文章來源地址http://www.zghlxwxcb.cn/news/detail-763473.html
文章來源:http://www.zghlxwxcb.cn/news/detail-763473.html
到了這里,關(guān)于shell腳本:監(jiān)控cpu,內(nèi)存,磁盤,IO,帶寬,閾值告警的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!