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
使用说明
- 将脚本保存在服务器上
- 添加执行权限:
chmod +x nginx_monitor.sh
- 可以通过crontab定期执行,比如每5分钟检查一次
写在最后
编写这个脚本的目的很简单,就是提高服务器的可用性和稳定性。通过自动监控和重启,可以最大限度地减少服务中断带来的影响。