1. 统计访问量最高的 IP(最常用)
bash
运行
#!/bin/bash
# 分析Nginx/Apache日志,统计访问最多IP
log="/var/log/nginx/access.log"
awk '{print $1}' $log | sort | uniq -c | sort -nr | head -10
作用:
- 取出日志里第 1 列(IP)
- 排序、去重、计数
- 按次数从大到小排,显示前 10
2. 统计 404 / 500 错误
bash
运行
#!/bin/bash
log="/var/log/nginx/access.log"
echo "=== 404 错误 ==="
grep " 404 " $log | awk '{print $1,$7}' | sort | uniq -c | sort -nr
echo -e "\n=== 500 错误 ==="
grep " 500 " $log | head -20
3. 按时间段筛选日志(小时 / 分钟)
bash
运行
#!/bin/bash
log="/var/log/nginx/access.log"
# 筛选今天 14点 的日志
grep "14/Mar/2026:14" $log | less
# 筛选今天 14:30 ~ 14:35
grep "14/Mar/2026:14:3[0-5]" $log
4. 实时监控日志(tail 监控)
bash
运行
#!/bin/bash
log="/var/log/nginx/access.log"
tail -f $log | while read line; do
echo "$line"
# 发现500就报警
if echo "$line" | grep " 500 "; then
echo "【警告】出现500错误!"
fi
done
5. 统计访问最多的页面
bash
运行
#!/bin/bash
log="/var/log/nginx/access.log"
awk '{print $7}' $log | grep -v '^$' | sort | uniq -c | sort -nr | head -15