shell监控脚本-监控系统负载

简介:

shell监控脚本-监控系统负载

注意:请先参考 shell监控脚本-准备工作,监控脚本在 rhel5 下测试正常,其它版本的linux 系统请自行测试
#监控系统负载

 
  1. cat chk_load.sh

  2. #!/bin/bash

  3. #

  4. #script_name:chk_load.sh

  5. #check system load

  6. #

  7. #last update 20130320 by dongnan

  8. #bbs# http://bbs.ywwd.net/

  9. #blog# http://dngood.blog.51cto.com

  10. #

  11. #ssh root@xen "/bin/cat /proc/loadavg" | awk '{print $1}' | awk -F. '{print $1}'

  12. #0

  13. #variables

  14. ssh=/usr/bin/ssh

  15. sh_dir=/root/sh/

  16. crondir=${sh_dir}crontab

  17. source ${sh_dir}CONFIG

  18. hosts="$LINUX_WEB_HOSTS"

  19. let loadlimit=1

  20. log=${crondir}/log/system_load.log

  21. #main

  22. #主循环遍历机器

  23. for HOST in $hosts ;do

  24.    #主循环遍历机器

  25. LOAD=$($ssh -o ConnectTimeout=3 root@$HOST "/bin/cat /proc/loadavg" | awk '{print $1}' | awk -F. '{print $1}')

  26.    #无法连接的主机,跳过本次循环

  27.    test -z "$LOAD" && continue

  28.    #true

  29.    if [ "$LOAD" -lt "$loadlimit" ];then

  30.        #如果找到load文件,则发送解除报警邮件

  31.        if [ -f $crondir/log/"$HOST".load ];then

  32.            #sms

  33.            #for mobile in $MOBILES;do

  34.                #echo "$HOST load ok"|/usr/local/bin/gammu --sendsms TEXT "$mobile" -unicode

  35.            #done

  36.            #mail

  37.            for mail in $MAILS;do

  38.                echo "$HOST load ok" | mail -s "$HOST load ok" $mail

  39.            done

  40.            #删除flag

  41.            rm -f $crondir/log/"$HOST".load

  42.        fi

  43.    #false  

  44.    else

  45.         #不能找到load文件,则发送报警邮件

  46.         if [ ! -f $crondir/log/"$HOST".load ];then

  47.             #sms

  48.             #for mobile in $MOBILES;do

  49.                 #echo ""$HOST" overload"|/usr/local/bin/gammu --sendsms TEXT "$mobile" -unicode

  50.             #done

  51.             #mail

  52.             for mail in $MAILS;do

  53.                 echo "$HOST overload" | mail -s "$HOST overload" $mail

  54.             done

  55.             #生成flag

  56.             echo "overload" >$crondir/log/"$HOST".load

  57.             #log

  58.             date +'%F %T' >>$log

  59.             echo "$HOST overload" >> $log

  60.         fi

  61. #    

  62.    fi

  63. #  

  64. done

结束
更多请:  
linux 系统运维  37275208  
vmware 虚拟化  166682360


本文转自 dongnan 51CTO博客,原文链接:http://blog.51cto.com/dngood/1163560


相关文章
|
23天前
|
弹性计算 Shell Perl
ecs服务器shell常用脚本练习(二)
【4月更文挑战第1天】shell代码训练(二)
106 1
|
25天前
|
Java Shell
SpringBoot启动脚本Shell
SpringBoot启动脚本Shell
17 0
|
1月前
|
Shell Linux C语言
【Shell 命令集合 系统管理 】Linux 显示系统的平均负载情况 tload命令 使用指南
【Shell 命令集合 系统管理 】Linux 显示系统的平均负载情况 tload命令 使用指南
40 1
|
1月前
|
监控 网络协议 Shell
【Shell 命令集合 网络通讯 】Linux 监控和记录网络中ARP(Address Resolution Protocol)活动 arpwatch命令 使用指南
【Shell 命令集合 网络通讯 】Linux 监控和记录网络中ARP(Address Resolution Protocol)活动 arpwatch命令 使用指南
34 0
|
2天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
26 3
|
6天前
|
运维 监控 Shell
利用Shell脚本编写局域网监控软件:实时监测主机连接情况
本文介绍了如何使用Shell脚本创建一个局域网监控工具,以实时检查主机连接状态。脚本包括扫描IP地址范围检测主机可达性及使用`netstat`监控ESTABLISHED连接。此外,还展示了如何每60秒将连接数数据自动提交到指定网站API,以便实时跟踪网络活动。这个自动化监控系统有助于提升网络安全性和故障排查效率。
26 0
|
7天前
|
Shell
Shell脚本之流程控制语句
Shell脚本之流程控制语句
|
8天前
|
JSON 运维 监控
训练shell常用脚本练习(三)
【4月更文挑战第14天】shell代码训练(三)
26 1
|
12天前
|
存储 弹性计算 Shell
ecs服务器shell常用脚本练习(十)
【4月更文挑战第11天】shell代码训练(十)
143 0
|
12天前
|
弹性计算 Shell Go
ecs服务器shell常用脚本练习(九)
【4月更文挑战第10天】shell代码训练(八)
136 0