• nginx2goaccess.sh脚本内容


    脚本github地址:https://github.com/stockrt/nginx2goaccess/blob/master/nginx2goaccess.sh

    脚本内容:

    #!/bin/bash
    #
    # Convert from this:
    #   http://nginx.org/en/docs/http/ngx_http_log_module.html
    # To this:
    #   https://goaccess.io/man
    #
    # Conversion table:
    #   $time_local         %d:%t %^
    #   $host               %v
    #   $http_host          %v
    #   $remote_addr        %h
    #   $request_time       %T
    #   $request_method     %m
    #   $request_uri        %U
    #   $server_protocol    %H
    #   $request            %r
    #   $status             %s
    #   $body_bytes_sent    %b
    #   $bytes_sent         %b
    #   $http_referer       %R
    #   $http_user_agent    %u
    #
    # Samples:
    #
    # log_format combined '$remote_addr - $remote_user [$time_local] '
    # '"$request" $status $body_bytes_sent '
    # '"$http_referer" "$http_user_agent"';
    #   ./nginx2goaccess.sh '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"'
    #
    # log_format compression '$remote_addr - $remote_user [$time_local] '
    # '"$request" $status $bytes_sent '
    # '"$http_referer" "$http_user_agent" "$gzip_ratio"';
    #   ./nginx2goaccess.sh '$remote_addr - $remote_user [$time_local] "$request" $status $bytes_sent "$http_referer" "$http_user_agent" "$gzip_ratio"'
    #
    # log_format main
    # '$remote_addr\t$time_local\t$host\t$request\t$http_referer\t$http_x_mobile_group\t'
    # 'Local:\t$status\t$body_bytes_sent\t$request_time\t'
    # 'Proxy:\t$upstream_cache_status\t$upstream_status\t$upstream_response_length\t$upstream_response_time\t'
    # 'Agent:\t$http_user_agent\t'
    # 'Fwd:\t$http_x_forwarded_for';
    #   ./nginx2goaccess.sh '$remote_addr\t$time_local\t$host\t$request\t$http_referer\t$http_x_mobile_group\tLocal:\t$status\t$body_bytes_sent\t$request_time\tProxy:\t$upstream_cache_status\t$upstream_status\t$upstream_response_length\t$upstream_response_time\tAgent:\t$http_user_agent\tFwd:\t$http_x_forwarded_for'
    #
    # log_format main
    # '${time_local}\t${remote_addr}\t${host}\t${request_method}\t${request_uri}\t${server_protocol}\t'
    # '${http_referer}\t${http_x_mobile_group}\t'
    # 'Local:\t${status}\t*${connection}\t${body_bytes_sent}\t${request_time}\t'
    # 'Proxy:\t${upstream_status}\t${upstream_cache_status}\t'
    # '${upstream_response_length}\t${upstream_response_time}\t${uri}${log_args}\t'
    # 'Agent:\t${http_user_agent}\t'
    # 'Fwd:\t${http_x_forwarded_for}';
    #   ./nginx2goaccess.sh '${time_local}\t${remote_addr}\t${host}\t${request_method}\t${request_uri}\t${server_protocol}\t${http_referer}\t${http_x_mobile_group}\tLocal:\t${status}\t*${connection}\t${body_bytes_sent}\t${request_time}\tProxy:\t${upstream_status}\t${upstream_cache_status}\t${upstream_response_length}\t${upstream_response_time}\t${uri}${log_args}\tAgent:\t${http_user_agent}\tFwd:\t${http_x_forwarded_for}'
    #
    # Author: Rogério Carvalho Schneider <stockrt@gmail.com>
    
    # Params
    log_format="$1"
    
    # Usage
    if [[ -z "$log_format" ]]; then
        echo "Usage: $0 '<log_format>'"
        exit 1
    fi
    
    # Variables map
    conversion_table="time_local,%d:%t_%^
    host,%v
    http_host,%v
    remote_addr,%h
    request_time,%T
    request_method,%m
    request_uri,%U
    server_protocol,%H
    request,%r
    status,%s
    body_bytes_sent,%b
    bytes_sent,%b
    http_referer,%R
    http_user_agent,%u"
    
    # Conversion
    for item in $conversion_table; do
        nginx_var=${item%%,*}
        goaccess_var=${item##*,}
        goaccess_var=${goaccess_var//_/ }
        log_format=${log_format//\$\{$nginx_var\}/$goaccess_var}
        log_format=${log_format//\$$nginx_var/$goaccess_var}
    done
    log_format=$(echo "$log_format" | sed 's/${[a-z_]*}/%^/g')
    log_format=$(echo "$log_format" | sed 's/$[a-z_]*/%^/g')
    
    # Config output
    echo "
    - Generated goaccess config:
    time-format %T
    date-format %d/%b/%Y
    log_format $log_format
    "
    
    # EOF
  • 相关阅读:
    REDUCING THE SEARCH SPACE FOR HYPERPARAMETER OPTIMIZATION USING GROUP SPARSITY阅读笔记
    缓存穿透、缓存击穿、缓存雪崩区别和解决方案
    Jenkins中构建时提示:Couldn't find any revision to build. Verify the repository and branch config
    Docker中使用Dockerfile定制化jar启动时:at sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)
    Docker中部署mysql后SpringBoot连接时提示表不存在(修改表名忽略大小写)
    js使用y-seal实现印章功能
    手写js原生方法总结(简版)
    P5666
    CF653G
    P4649
  • 原文地址:https://www.cnblogs.com/erbiao/p/9221543.html
Copyright © 2020-2023  润新知