美文网首页
报警shell脚本浅写

报警shell脚本浅写

作者: fly先森 | 来源:发表于2019-01-18 11:41 被阅读0次

在企业的大数据系统中,会存在许许多多的shell监控脚本对集群的各种指标进行监控和报警。

1.编写mysql数据库监控

            #!/bin/bash
            #mysql.sh
                      #这一行是连接数据库的操作
            nc -e 3 localhost 3306 &>/dev/null

                     #$?是上一行代码操作成功与否,成功不等于1,否则等于0
            if [ $? -eq 0 ];then

                    str="mysql server status Running!!!"

            else

                    str="mysql server status Shuting!!!"

            fi

            echo $str | mail -s 'mysql server' admin@g.cn

2.编写Disk硬盘空间监控

            #!/bin/bash
            #disk.sh                         
                      #df查看磁盘占用情况  NR==7是第七行 每一行默认空格划分所以$5就是占用率
            ds=`df |awk '{if(NR==7){print int($5)}}'`   

            if [ $ds -lt 45 ];then

                   str="disk space is less than 45%!!!"

            else

                   str="disk space is greater than 45%!!!"

            fi

            echo $str | mail -s 'linux server disk space' admin@g.cn

3.编写mem(内存)空间监控脚本

            #!/bin/bash

            #mem.sh

            mem=`free -m |awk '{if(NR==2){printf("%.0f\n",(int($3)/int($2))*100)}}'` //四舍五入取整

            if [ $mem -lt 45 ];then //表达式内为整数表达式,不能用浮点型

                   str="mem space is less than 45%,Achieve $mem%!!!"

            else

                   str="mem space is greater than 45%,Achieve $mem%!!!"   

            fi

            echo $str | mail -s 'linux server mem space' admin@g.cn

4、报警脚本重启生效

          1)设置脚本权限

            chmod 755 /etc/init.d/mon.sh    //mon.sh:将所有脚本放到这个脚本中,或者调用其他脚本,发送一封邮件即可

          2)crontab -e                //任务计划

            */5****bash /etc/init.d/mon.sh

            如:10 13 *** /mnt/monitor.dh      //每天的13:10执行这个代码

          3)tail -f /var/log/cron

          4)邮件报警要提前测试准备邮件系统是否正常工作

上述几个是网上的一些小demo,也是报警脚本的一个小入门,下面贴一份在某大型互联网的部分代码(部分公司信息已手动去除):

unction hdfs() {
    
    JAVA_HOME="/home/work/software/java"
    HADOOP_HOME="/home/work/software/hadoop"
    
    PROCESS=`${JAVA_HOME}/bin/jps | grep -iE "datanode|avatardatanode" | wc -l`   //拿到相关的进程数
    PORT=`/bin/netstat -nl | grep -E "50020|50010" | wc -l`  //拿到相关的端口数
    
    if [[ $PROCESS -gt 0 ]] || [[ $PORT -gt 0 ]]
    then
        echo "Normal."

    elif [[ "$PROCESS" == '0' ]] || [[ "$PORT" == '0' ]]
    then
        echo "auto restart service."
        if [ -f "${HADOOP_HOME}/conf/hdfs-site.xml" ]
        then
            is_master="`grep image $HADOOP_HOME/conf/hdfs-site.xml`"
            if [ "$is_master" == '' ]
            then
                is_dn=`/usr/bin/curl --user ***:**** -d "interface=hdfs" -d "ip=$ip_list" $ReportCenter -s`
                if [ "$is_dn" == 'datanode' ]
                then
                    hdfs_dn_type="`grep avatar ${HADOOP_HOME}/conf/hdfs-site.xml`"
                    if [ "$hdfs_dn_type" == '' ]
                    then
                        su - work -c "~/software/hadoop/bin/hadoop-daemon.sh start datanode" //su -work -c  代表切换到work用户并执行命令
                    else
                        su - work -c "~/software/hadoop/bin/hadoop-daemon.sh start avatardatanode"
                    fi
                fi
            else
                echo "Master Node!"
            fi
        fi
    else
        reportAlarm hdfs statuserror
    fi
}

hdfs

其实监控脚本本质还是对一些linux命令的掌握以及根据公司的业务需求对集群的一些指标进行实时查询,从而达到业务集群的稳定性,当然编写脚本的时候请保持每行空格对齐,代码的美观可以让我们身心愉悦( ̄▽ ̄)/

相关文章

  • 报警shell脚本浅写

    在企业的大数据系统中,会存在许许多多的shell监控脚本对集群的各种指标进行监控和报警。 1.编写mysql数据库...

  • 0基础自学linux运维-1.16-sendEmail安装及邮件

    邮件报警在运维中用得是属于很多的,尤其自己写的shell脚本,发现问题处理不了,需要手工干预,就需要报警处理。命令...

  • 企业微信报警

    Zabbix企业微信报警shell脚本 Zabbix服务端配置

  • 2019-06-26: Shell: 合并SDK真机&模拟器

    一:Shell: 合并SDK真机&模拟器脚本 --------------------- 自己写的shell脚本 ...

  • 02脚本执行方式

    写一个shell脚本

  • Shell__脚本中的操作符

    记录一下 Shell 脚本中比较符号的使用,在写 Shell 脚本时方便查询 。 算术比较符 Shell 表示中文...

  • Shell编程学习计划

    目标 学会Shell编程,能读懂别人写的Shell脚本,能独立编写Shell脚本解决工作中的问题。 缘由 1. S...

  • holleworld

    创建一个目录学习shell脚本,叫shell_script吧 开始写shell脚本 进入vim编辑器,按 i输入一...

  • shell

    shell脚本在linux中应用广泛,之前一直选用python写脚本来进行一些文件操作,但是最后发现shell脚本...

  • Linux shell编程模板

    只要会写Linux命令,就可以写shell脚本。 之前基本上写的shell脚本都是Linux命令的组合,最多加入i...

网友评论

      本文标题:报警shell脚本浅写

      本文链接:https://www.haomeiwen.com/subject/bbngdqtx.html