#!/bin/bash
# 远程服务器的IP地址或主机名
REMOTE_HOST="your_remote_host"
# 远程服务器的用户名
REMOTE_USER="your_remote_user"
# 远程服务器的Nginx配置文件路径(根据实际情况修改)
NGINX_CONF_PATH="/etc/nginx/nginx.conf"
# 远程服务器的Nginx日志文件路径(根据实际情况修改)
NGINX_LOG_PATH="/var/log/nginx/error.log"
# 检查远程服务器上的Nginx进程是否存在
if ssh $REMOTE_USER@$REMOTE_HOST pgrep -x "nginx" > /dev/null
then
echo "远程服务器上的Nginx进程存在,正在检查配置文件语法..."
# 检查远程服务器上的Nginx配置文件语法
ssh $REMOTE_USER@$REMOTE_HOST "nginx -t -c $NGINX_CONF_PATH"
if [ $? -eq 0 ]; then
echo "远程服务器上的Nginx配置文件语法正确,正在检查能否正常访问网页..."
# 检查能否正常访问远程服务器上的网页
curl -I http://$REMOTE_HOST
if [ $? -eq 0 ]; then
echo "远程服务器上的Nginx服务正常运行"
# 查看最近的Nginx访问日志
echo "查看最近的Nginx访问日志:"
ssh $REMOTE_USER@$REMOTE_HOST "tail -n 10 /var/log/nginx/access.log"
else
echo "远程服务器上的Nginx服务异常,无法正常访问网页"
# 查看Nginx错误日志
echo "查看Nginx错误日志:"
ssh $REMOTE_USER@$REMOTE_HOST "tail -n 20 $NGINX_LOG_PATH"
fi
else
echo "远程服务器上的Nginx配置文件语法错误"
# 查看Nginx配置测试的详细输出
echo "查看Nginx配置测试的详细输出:"
ssh $REMOTE_USER@$REMOTE_HOST "nginx -t -c $NGINX_CONF_PATH"
fi
else
echo "远程服务器上的Nginx进程不存在,正在尝试启动Nginx..."
# 尝试在远程服务器上启动Nginx
ssh $REMOTE_USER@$REMOTE_HOST "sudo systemctl start nginx"
if [ $? -eq 0 ]; then
echo "远程服务器上的Nginx启动成功"
else
echo "远程服务器上的Nginx启动失败"
# 查看Nginx启动失败时的错误日志
echo "查看Nginx启动失败时的错误日志:"
ssh $REMOTE_USER@$REMOTE_HOST "tail -n 20 $NGINX_LOG_PATH"
fi
fi
-
在脚本开头定义了远程服务器的Nginx日志文件路径(
NGINX_LOG_PATH
),你需要根据实际情况将其修改为远程服务器上Nginx错误日志文件的实际路径。 -
在检查Nginx服务正常运行时,使用
ssh
命令远程执行tail -n 10 /var/log/nginx/access.log
命令,查看最近的10条Nginx访问日志。 -
在检查Nginx服务异常或配置文件语法错误时,使用
ssh
命令远程执行tail -n 20 $NGINX_LOG_PATH
命令,查看最近的20条Nginx错误日志。你可以根据需要调整tail
命令的行数参数,以查看更多或更少的日志条目。 -
在检查Nginx配置文件语法错误时,再次执行
nginx -t -c $NGINX_CONF_PATH
命令,并输出其详细结果,以便查看具体的语法错误信息。 -
在尝试启动Nginx失败时,同样使用
tail -n 20 $NGINX_LOG_PATH
命令查看Nginx启动失败时的错误日志。
-
将上述脚本内容保存到一个文件中,例如命名为
check_remote_nginx_with_logs.sh
。 -
赋予该脚本执行权限,命令为
chmod +x check_remote_nginx_with_logs.sh
。 -
运行脚本,命令为
./check_remote_nginx_with_logs.sh
。
-
确保远程服务器上的用户具有读取Nginx日志文件的权限。
-
根据你的需求,你可以调整日志查看的行数,或者使用其他命令(如
grep
)来过滤特定类型的日志条目。 -
如果远程服务器上的Nginx日志文件路径或名称与示例中的不同,请相应地修改
NGINX_LOG_PATH
变量的值。