使用宝塔面板检测URL状态码是否返回500,并在出现问题时自动重启Nginx脚本

脚本只支持检测一条url状态码,将url中的网址更改为你需要检测的网址。

#!/bin/bash

# 定义 URL 和超时时间
url="http://example.com"
timeout=5

# 检测 URL 是否返回 500 错误
status=$(curl -o /dev/null -s -w %{http_code} --connect-timeout $timeout $url)
if [ $status -eq 500 ]; then
    nginx -t && systemctl reload nginx.service
fi

并在宝塔面板中设置计划任务,选择Shell脚本,执行时间为检测时间,我这里设置的是1分钟检测一次

按照以上设置即可

第二种方法,使用方法同上,当遇到Nginx停止时会自动重启

pgrep -x nginx &> /dev/null
if [ $? -ne 0 ];then
/etc/init.d/nginx restart
fi

以上两种方法中的restart可更改为start

restart为重启命令

start为启动命令

 

posted @ 2023-05-08 11:12  神经蛙  阅读(227)  评论(0编辑  收藏  举报