日志分析小脚本

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
滚动至顶部