2、编写web服务器监控

        nc命令:

            Linux中nc命令是一个功能强大的网络工具,全称是netcat。

             语法:

                nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]

            参数说明:

                -g<网关> 设置路由器跃程通信网关,最丢哦可设置8个。

                -G<指向器数目> 设置来源路由指向器,其数值为4的倍数。

                -h 在线帮助。

                -i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。

                -l 使用监听模式,管控传入的资料。

                -n 直接使用IP地址,而不通过域名服务器。

                -o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。

                -p<通信端口> 设置本地主机使用的通信端口。

                -r 乱数指定本地与远端主机的通信端口。

                -s<来源位址> 设置本地主机送出数据包的IP地址。

                -u 使用UDP传输协议。

                -v 显示指令执行过程。

                -w<超时秒数> 设置等待连线的时间。

                -z 使用0输入/输出模式,只在扫描通信端口时使用。

        touch web.sh

            #!/bin/bash

            #web.sh

            nc -w 3 localhost 80 &>/dev/null

            if [ $? -eq 0 ];then

              str="apache web服务器目前状态处于正常状态!!!"

            else

              str="apache web服务器目前处于关闭或无响应状态!!!"

            fi

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

3、编写mysql数据库监控

        touch mysql.sh 

            #!/bin/bash

            #mysql.sh

            nc -e 3 localhost 3306 &>/dev/null

            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

4、编写Disk硬盘空间监控

        touch disk.sh

            #!/bin/bash

            #disk.sh

            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

5、编写mem(内存)空间监控脚本

        touch mem.sh

            #!/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

6、报警脚本重启生效

          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)邮件报警要提前测试准备邮件系统是否正常工作
文档更新时间: 2023-07-28 07:17   作者:月影鹏鹏
IT运维支持-AIWALY-月影工作室