取出Nginx一分钟内的日志


#!/bin/bash

#author: 萧萧一风

#取出nginx一分钟内的日志

 

#Nginx日志格式: 

# 192.168.0.161 - - [16/Oct/2019:14:29:20 +0800] "GET / HTTP/1.1" 200 2126 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36" -

 

if [ -z $1 ];then

    echo "请在脚本后面加上日志文件!!"

    exit 1

fi

 

#日志文件

#logfile=/data/logs/nginx/keysou.com.log

logfile=$1

 

#开始时间

start_time=`date -d"$last_minutes minutes ago" +"%H:%M:%S"`

#start_time="14:29:20"

 

#结束时间

stop_time=`date +"%H:%M:%S"`

#stop_time="14:35:36"

 

tac $logfile | awk  -v st="$start_time" -v et="$stop_time" ' 

BEGIN{

    print "\n-------------------------------";

    print "开始时间:"st;

    print "结束时间:"et;

    print "在这个时间段(1分钟内)的日志如下:"

    print "---------------------------------\n"

}

 

{

   

    #第4列的时间数据,然后按:冒号进行分割出时间

    #split($4,i,":");

    

    #组合时间 例: 14:37:49

    #t=sprintf("%s:%s:%s",i[2],i[3],i[4]);

 

    #第4列的时间数据,取出时:分:秒

    t=substr($4,RSTART+14,21);

     

    #判断在st与et之间的时间

    if(t>=st && t<=et)

        {print $0} 

}

END{

    print "\n"

}


作者头像
南宫俊逸创始人

君子好学,自强不息~

上一篇:Python+uWSGI+Nginx多域名站点
下一篇:Nginx GeoIP 用户访问城市地区位置信息

发表评论

阿里云2021年 618 年中钜惠活动