searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

Linux脚本查看Nginx服务的详细日志

2025-02-06 01:36:09
0
0

#!/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

修改说明:
  1. 在脚本开头定义了远程服务器的Nginx日志文件路径(NGINX_LOG_PATH),你需要根据实际情况将其修改为远程服务器上Nginx错误日志文件的实际路径。
  2. 在检查Nginx服务正常运行时,使用ssh命令远程执行tail -n 10 /var/log/nginx/access.log命令,查看最近的10条Nginx访问日志。
  3. 在检查Nginx服务异常或配置文件语法错误时,使用ssh命令远程执行tail -n 20 $NGINX_LOG_PATH命令,查看最近的20条Nginx错误日志。你可以根据需要调整tail命令的行数参数,以查看更多或更少的日志条目。
  4. 在检查Nginx配置文件语法错误时,再次执行nginx -t -c $NGINX_CONF_PATH命令,并输出其详细结果,以便查看具体的语法错误信息。
  5. 在尝试启动Nginx失败时,同样使用tail -n 20 $NGINX_LOG_PATH命令查看Nginx启动失败时的错误日志。
使用说明:
  1. 将上述脚本内容保存到一个文件中,例如命名为check_remote_nginx_with_logs.sh
  2. 赋予该脚本执行权限,命令为chmod +x check_remote_nginx_with_logs.sh
  3. 运行脚本,命令为./check_remote_nginx_with_logs.sh
注意事项:
  1. 确保远程服务器上的用户具有读取Nginx日志文件的权限。
  2. 根据你的需求,你可以调整日志查看的行数,或者使用其他命令(如grep)来过滤特定类型的日志条目。
  3. 如果远程服务器上的Nginx日志文件路径或名称与示例中的不同,请相应地修改NGINX_LOG_PATH变量的值。
0条评论
0 / 1000
王****际
140文章数
2粉丝数
王****际
140 文章 | 2 粉丝
原创

Linux脚本查看Nginx服务的详细日志

2025-02-06 01:36:09
0
0

#!/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

修改说明:
  1. 在脚本开头定义了远程服务器的Nginx日志文件路径(NGINX_LOG_PATH),你需要根据实际情况将其修改为远程服务器上Nginx错误日志文件的实际路径。
  2. 在检查Nginx服务正常运行时,使用ssh命令远程执行tail -n 10 /var/log/nginx/access.log命令,查看最近的10条Nginx访问日志。
  3. 在检查Nginx服务异常或配置文件语法错误时,使用ssh命令远程执行tail -n 20 $NGINX_LOG_PATH命令,查看最近的20条Nginx错误日志。你可以根据需要调整tail命令的行数参数,以查看更多或更少的日志条目。
  4. 在检查Nginx配置文件语法错误时,再次执行nginx -t -c $NGINX_CONF_PATH命令,并输出其详细结果,以便查看具体的语法错误信息。
  5. 在尝试启动Nginx失败时,同样使用tail -n 20 $NGINX_LOG_PATH命令查看Nginx启动失败时的错误日志。
使用说明:
  1. 将上述脚本内容保存到一个文件中,例如命名为check_remote_nginx_with_logs.sh
  2. 赋予该脚本执行权限,命令为chmod +x check_remote_nginx_with_logs.sh
  3. 运行脚本,命令为./check_remote_nginx_with_logs.sh
注意事项:
  1. 确保远程服务器上的用户具有读取Nginx日志文件的权限。
  2. 根据你的需求,你可以调整日志查看的行数,或者使用其他命令(如grep)来过滤特定类型的日志条目。
  3. 如果远程服务器上的Nginx日志文件路径或名称与示例中的不同,请相应地修改NGINX_LOG_PATH变量的值。
文章来自个人专栏
pike
140 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0