Nginx状态监控脚本

服务器稳定性一直是运维工作中的重点和难点。网站突然down机可能会造成严重的经济损失,及时监控和快速恢复是非常关键的。

脚本实现

这个Shell脚本能够自动检查Nginx的运行状态,一旦发现服务停止,立即尝试重启。

完整代码

#!/bin/bash
# Nginx状态监控脚本
# 功能:检测Nginx状态,如果停止则自动重启
# 使用方法:将此脚本设置为定时任务或系统服务
# 检查是否以root权限运行
if [ "$(id -u)" -ne 0 ]; then
    echo "错误:此脚本需要root权限运行"
    exit 1
fi
# 获取Nginx状态
status_output=$(/etc/init.d/nginx status 2>&1)
# 检查状态输出是否包含"stopped"
if echo "$status_output" | grep -q "stopped"; then
    echo "检测到Nginx已停止,尝试重启..."
    
    # 尝试重启Nginx
    restart_output=$(/etc/init.d/nginx restart 2>&1)
    
    # 验证重启是否成功
    if echo "$restart_output" | grep -q "done"; then
        echo "Nginx重启成功"
    else
        echo "Nginx重启失败,请手动检查问题"
    fi
else
    echo "Nginx运行正常"
fi

使用说明

  1. 将脚本保存在服务器上
  2. 添加执行权限:chmod +x nginx_monitor.sh
  3. 可以通过crontab定期执行,比如每5分钟检查一次

写在最后

编写这个脚本的目的很简单,就是提高服务器的可用性和稳定性。通过自动监控和重启,可以最大限度地减少服务中断带来的影响。

最后修改:2025 年 04 月 25 日
如果觉得我的文章对你有用,请随意赞赏