温馨提示×

如何统计linux日志数量

小樊
35
2026-10-20 00:38:57
栏目: 智能运维

在 Linux 中“统计日志数量”通常分为几种场景:统计日志文件个数、统计日志行数、按条件统计(如错误数、某关键字出现次数)。下面按常见需求给你一套实用方法。


一、统计日志【文件数量】

1️⃣ 统计某个目录下的日志文件数

ls /var/log/*.log | wc -l

2️⃣ 包含子目录

find /var/log -name "*.log" | wc -l

二、统计日志【总行数(条目数)】

1️⃣ 单个日志文件

wc -l /var/log/messages

2️⃣ 多个日志文件总行数

cat /var/log/*.log | wc -l

或分别显示:

wc -l /var/log/*.log

三、按【关键字】统计日志数量(最常用)

1️⃣ 统计包含 ERROR 的日志条数

grep -c "ERROR" /var/log/app.log

2️⃣ 不区分大小写

grep -ci "error" /var/log/app.log

3️⃣ 多个关键字(或关系)

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

四、按【时间】统计日志数量

1️⃣ 统计今天的日志

grep "$(date +%Y-%m-%d)" /var/log/app.log | wc -l

2️⃣ 统计某小时

grep "2026-01-21 10:" /var/log/app.log | wc -l

五、统计【不同级别】日志分布

grep -oE "INFO|WARN|ERROR|DEBUG" /var/log/app.log | sort | uniq -c

输出示例:

 1200 INFO
  300 WARN
   45 ERROR

六、实时统计日志(tail + 统计)

实时统计 ERROR 数量

tail -f /var/log/app.log | grep --line-buffered "ERROR" | wc -l

七、结合 journald(systemd 日志)

统计某服务日志条数

journalctl -u nginx | wc -l

统计今天错误日志

journalctl --since today -p err | wc -l

八、进阶:用 awk 精确统计

按小时统计日志量

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

如果你能告诉我:

  • 日志路径
  • 日志格式(如 JSON / 普通文本)
  • 想统计什么(总数 / 错误数 / 某接口 / 某用户)

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

0 踩