脚本代码:
#!/bin/bash
# Nginx服务器状态监控与自动重启脚本
# 版本:1.0
# 作者:XXX
# 日期:XXXX-XX-XX
# 定义Nginx进程文件路径
NGINX_PID=/var/run/nginx.pid
# 定义Nginx日志路径
NGINX_ERROR_LOG=/var/log/nginx/error.log
# 定义Nginx可执行文件路径
NGINX_BIN=/usr/sbin/nginx
# 函数:检查Nginx进程是否运行
check_nginx_process() {
if [ ! -f "$NGINX_PID" ]; then
echo "Nginx进程未运行,尝试启动..."
$NGINX_BIN
if [ $? -eq 0 ]; then
echo "Nginx启动成功!"
else
echo "Nginx启动失败,请检查错误日志:$NGINX_ERROR_LOG"
fi
else
echo "Nginx进程正在运行..."
fi
}
# 函数:检查Nginx错误日志是否有异常
check_nginx_error_log() {
if grep -q "error" "$NGINX_ERROR_LOG"; then
echo "Nginx错误日志发现异常,请检查:$NGINX_ERROR_LOG"
else
echo "Nginx错误日志无异常..."
fi
}
# 主程序开始
echo "开始执行Nginx服务器状态监控与自动重启脚本..."
# 检查Nginx进程状态
check_nginx_process
# 检查Nginx错误日志
check_nginx_error_log
echo "Nginx服务器状态监控与自动重启脚本执行完毕!"
代码解释:
-
脚本头部:
- 定义脚本的基本信息,如版本、作者和日期。
- 定义Nginx进程文件、错误日志和可执行文件的路径。
-
check_nginx_process函数:
- 检查Nginx进程是否运行。
- 如果Nginx进程未运行,则尝试启动Nginx,并检查启动是否成功。
- 如果启动失败,提示用户检查错误日志。
-
check_nginx_error_log函数:
- 使用
grep
命令检查Nginx错误日志中是否包含"error"关键字。 - 如果发现异常,提示用户检查错误日志。
- 使用
-
主程序:
- 输出脚本开始执行的提示信息。
- 调用
check_nginx_process
函数检查Nginx进程状态。 - 调用
check_nginx_error_log
函数检查Nginx错误日志。 - 输出脚本执行完毕的提示信息。
脚本用途:
这个脚本用于监控Nginx服务器的状态,包括检查Nginx进程是否运行和错误日志中是否有异常。如果Nginx进程未运行,脚本会尝试启动Nginx;如果错误日志中发现异常,脚本会提示用户检查错误日志。这个脚本可以定期运行,以确保Nginx服务器的稳定运行。