查询Nginx某一时间段日志

awk -v start="21/Aug/2025:10:30:00" -v end="21/Aug/2025:11:30:00" '
{
    # 提取日志行中的时间戳部分,去掉方括号
    log_time = substr($4, 2, 20)
    # 比较时间字符串
    if (log_time >= start && log_time <= end) {
        print $0
    }
}' /var/log/nginx/access.log

awk -v参数设置变量,substr用于截取字符串,参数分别代表第四个字段、从第二个字符开始、长度为20

用grep也可以查,但是没有awk精确方便。

grep -E '21/Aug/2025:1[0-1]:[0-5][0-9]' /var/log/nginx/access.log

 

THE END