当前位置:   article > 正文

shell脚本:监控cpu,内存,磁盘,IO,带宽,阈值告警_shell脚本监控cpu内存磁盘

shell脚本监控cpu内存磁盘

一.shell脚本监控内存和磁盘的使用率,设置阈值,并通过邮件告警

  1. #!/bin/bash
  2. # 设置告警阈值,单位为百分比
  3. MEM_THRESHOLD=80
  4. DISK_THRESHOLD=90
  5. # 获取内存使用率
  6. MEM_USED=$(free | awk 'FNR == 2 {print $3}')
  7. MEM_TOTAL=$(free | awk 'FNR == 2 {print $2}')
  8. MEM_USAGE=$((100 * $MEM_USED / $MEM_TOTAL))
  9. # 获取磁盘使用率
  10. DISK_USAGE=$(df -h | awk 'FNR == 2 {sub(/%/, ""); print $5}')
  11. # 检查内存使用率是否超过阈值
  12. if [ $MEM_USAGE -ge $MEM_THRESHOLD ]; then
  13. # 发送告警邮件
  14. echo "Memory usage is above threshold ($MEM_THRESHOLD%): $MEM_USAGE%" | mail -s "Memory usage alert" you@example.com
  15. fi
  16. # 检查磁盘使用率是否超过阈值
  17. if [ ${DISK_USAGE%?} -ge $DISK_THRESHOLD ]; then
  18. # 发送告警邮件
  19. echo "Disk usage is above threshold ($DISK_THRESHOLD%): $DISK_USAGE" | mail -s "Disk usage alert" you@example.com
  20. fi

二.shell脚本监控内存,磁盘,带宽,io,cpu的使用率,设置阈值进行微信告警

  1. #!/bin/bash
  2. # 定义告警的微信号
  3. wechat_id="your_wechat_id"
  4. # 定义阈值,这里只是举例,具体阈值可以根据实际情况进行设置
  5. mem_threshold=80
  6. disk_threshold=90
  7. net_threshold=100
  8. io_threshold=50
  9. cpu_threshold=80
  10. while true; do
  11. # 获取内存使用率
  12. mem_usage=$(free | grep Mem | awk '{printf("%.2f"), $3/$2*100}')
  13. # 判断内存使用率是否超过阈值
  14. if [ $(echo "$mem_usage > $mem_threshold" | bc -l) -eq 1 ]; then
  15. # 发送告警信息
  16. echo "Memory usage is high: $mem_usage%" | wechat $wechat_id
  17. fi
  18. # 获取磁盘使用率
  19. disk_usage=$(df -h | awk '$NF=="/"{printf("%.2f"), $5}')
  20. # 判断磁盘使用率是否超过阈值
  21. if [ $(echo "$disk_usage > $disk_threshold" | bc -l) -eq 1 ]; then
  22. # 发送告警信息
  23. echo "Disk usage is high: $disk_usage%" | wechat $wechat_id
  24. fi
  25. # 获取带宽使用率
  26. net_usage=$(ifstat | awk '$1=="ens3"{print $8}')
  27. # 判断带宽使用率是否超过阈值
  28. if [ $(echo "$net_usage > $net_threshold" | bc -l) -eq 1 ]; then
  29. # 发送告警信息
  30. echo "Network usage is high: $net_usage KB/s" | wechat $wechat_id
  31. fi
  32. # 获取磁盘 IO 使用率
  33. io_usage=$(iostat | awk '$1=="sda"{print $4}')
  34. # 判断磁盘 IO 使用率是否超过阈值
  35. if [ $(echo "$io_usage > $io_threshold" | bc -l) -eq 1 ]; then
  36. # 发送告警信息
  37. echo "Disk IO usage is high: $io_usage%" | wechat $wechat_id
  38. fi
  39. # 获取 CPU 使用率
  40. cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2+$4}')
  41. # 判断 CPU 使用率是否超过阈值
  42. if [ $(echo "$cpu_usage > $cpu_threshold" | bc -l) -eq 1 ]; then
  43. # 发送告警信息
  44. echo "CPU usage is high: $cpu_usage%" | wechat $wechat_id
  45. fi
  46. # 等待一定时间再继续监控
  47. sleep 10
  48. done

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/154107
推荐阅读
相关标签
  

闽ICP备14008679号