在Linux系统中,有多种方法可以查看日志文件中的HTTP响应状态码(如200, 404, 500等)。以下是几种常用的方法:
# 查看所有200状态码的请求
grep " 200 " /var/log/nginx/access.log
# 查看所有非200状态码的请求
grep -v " 200 " /var/log/nginx/access.log
# 查看特定状态码(如404)
grep " 404 " /var/log/nginx/access.log
# 统计各状态码出现的次数
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn
# 更详细的统计(状态码+对应请求数+百分比)
awk '{print $9}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | awk '{array[$2]=$1; sum+=$1} END {for (i in array) printf "%s:\t%d\t%.2f%%\n", i, array[i], (array[i]/sum)*100}'
# 提取第9列(通常是状态码列)
cut -d' ' -f9 /var/log/nginx/access.log | sort | uniq -c
对于更复杂的分析,可以使用专用工具:
# 使用goaccess实时分析
goaccess /var/log/nginx/access.log --log-format=COMBINED
# 使用awstats
awstats -config=your_site -update
如果是Apache服务器,方法类似:
grep "HTTP/1.\" 404" /var/log/apache2/access.log
日志文件路径可能因系统配置而异,常见路径包括:
/var/log/nginx/access.log
/var/log/apache2/access.log
或 /var/log/httpd/access_log
状态码在日志中的位置可能因日志格式而异,通常在第9列
对于大型日志文件,建议结合less
或tail
使用:
tail -f /var/log/nginx/access.log | grep " 500 "
可以使用正则表达式匹配多个状态码:
grep -E " (404|500) " /var/log/nginx/access.log
希望这些命令能帮助您有效分析日志中的响应状态!