crontab计划任务监控nginx服务器

本文介绍了一个用于监控Nginx服务状态及系统资源(内存、磁盘)的Shell脚本。通过定时任务每分钟执行一次,实现对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

 

转载于:https://www.cnblogs.com/stin/p/7852373.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值