温馨提示×

如何统计linux日志行数

小樊
54
2026-09-26 16:12:31
栏目: 智能运维

在 Linux 中统计日志行数,常用且实用的方法如下:


一、统计整个日志文件行数

1. 使用 wc

wc -l app.log
  • -l:只统计行数
  • 输出示例:
12345 app.log

只取数字:

wc -l < app.log

二、统计匹配关键字的日志行数

2. 使用 grep + wc

grep "ERROR" app.log | wc -l

忽略大小写:

grep -i "error" app.log | wc -l

统计多个关键字(或关系):

grep -E "ERROR|WARN" app.log | wc -l

三、统计某时间段的日志行数

3. 结合 sed 或 awk

例如统计 2024-01-01 10:00 到 10:30:

awk '$0 >= "2024-01-01 10:00:00" && $0 <= "2024-01-01 10:30:00"' app.log | wc -l

四、统计压缩日志(.gz)

4. 使用 zcat

zcat app.log.2024-01-01.gz | wc -l

或统计错误数:

zcat app.log.*.gz | grep "ERROR" | wc -l

五、实时统计日志增长行数

5. 使用 tail -f

tail -f app.log | grep --line-buffered "ERROR"

(可配合 wc -l 手动观察)


六、按小时/天统计日志量(常见运维场景)

6. 按小时统计

awk '{print substr($0,1,13)}' app.log | sort | uniq -c

七、大文件性能建议

  • 超大日志:优先 grep 过滤后再 wc
  • 避免反复打开文件
  • 可用 less +F 实时查看

如果你能提供:

  • 日志格式(时间格式)
  • 统计目的(错误数 / 访问量 / 时间段)

我可以给你更精确的命令。

0 踩