zoukankan      html  css  js  c++  java
  • crontab计划任务监控nginx服务器

    #!/bin/bash
    
    ps axu |grep 'nginx' |grep -v 'grep' &>/dev/null
    if [ $? -ne 0 ]
    then
        echo "准备重启nginx...."
        systemctl restart nginx
        if [ $? -eq 0 ]
            then echo "nginx启动成功!"
        fi
    else
        echo "nginx正在运行中...."
    fi
    
    mem_free=`free |awk 'NR==2{print $4}'`
    mem_total=`free|awk 'NR==2 {print $2}'`
    mem_left=`echo "scale=2;$mem_free/$mem_total" |bc -l|cut -d. -f2`
    echo "内存剩余率是:" ${mem_left}%
    mem_init=90
    if [ $mem_left -lt $mem_init ]
        then
            msg="TIME:$(date +%F_%T)
                HOSTNAME:$(hostname)
                IPADDR:$(ip addr |awk 'NR==9{print $2}')
                MSG:Memory left lower than the limit,current value is ${mem_left}%"
            echo "内存剩余不足,会发送邮件"
            echo $msg
            /usr/bin/mail  $msg
    fi
    
    disk_free=`df |awk 'NR==2{print $4}'`
    disk_total=`df |awk 'NR==2{print $2}'`
    disk_left=`echo "scale=2;$disk_free/$disk_total"|bc -l|cut -d. -f2`
    echo "磁盘剩余率是:" ${disk_left}%

    将以上文件保存为serverMonitor.sh 并将该脚本文件的执行添加到定时任务中,使用以下命令打开计划任务编辑页面

    crontab -e -u root

    在编辑页面,加上一行

    * * * * * /usr/bin/sh  /root/serverMonitor.sh

    保存成功后用 crontab -l 查看计划任务列表

    至此,便会每分钟执行一次serverMonitor.sh,查询nginx状态,并监控内存剩余率,发送邮件,

    其中,发送邮件的工具代码见

    http://www.cnblogs.com/stin/p/7851887.html

  • 相关阅读:
    oracle里某列插入多行数据
    子类与父类的一些关系
    math.round()的值怎么取的
    oracle replace函数
    spring5.1.5使用的jackson依赖版本
    eclipse设置新建jsp页面的默认编码为utf-8
    c3p0启动失败
    sql的左联右联合内联的区别
    eclipse安装spring tools插件的问题
    HTML点击按钮button跳转页面的四种方法
  • 原文地址:https://www.cnblogs.com/stin/p/7852373.html
Copyright © 2011-2022 走看看