过滤 Linux 关键日志,通常要结合日志来源、时间范围、关键字、级别等因素。下面按实战场景给你一套常用方法,从简单到进阶。
/var/log/messages # 系统通用日志(RHEL/CentOS)
/var/log/syslog # 系统日志(Ubuntu/Debian)
/var/log/secure # 安全、SSH、登录(RHEL)
/var/log/auth.log # 认证日志(Ubuntu)
/var/log/dmesg # 内核日志
/var/log/nginx/ # Nginx
/var/log/mysql/ # MySQL
/var/log/audit/audit.log # 审计日志
grep "error" /var/log/messages
grep -i "failed" /var/log/secure
grep -E "error|fail|exception" /var/log/messages
grep -v "cron" /var/log/messages
grep -n "error" /var/log/messages
grep "$(date +%b\ %e)" /var/log/messages
sed -n '/Oct 10 10:/,/Oct 10 12:/p' /var/log/messages
journalctl -p err # 错误级别
journalctl --since "2025-01-01" --until "2025-01-10"
journalctl -u sshd
emerg
alert
crit
err
warning
notice
info
debug
示例:
journalctl -p err..alert
tail -f /var/log/messages | grep -i error
tail -f /var/log/messages | grep --color -E "error|fail|warn"
awk '$3 ~ /error/ {print}' /var/log/messages
grep "error" /var/log/messages | wc -l
grep "Failed password" /var/log/secure
grep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr
✅ 系统异常
journalctl -p err -x
✅ 服务异常
journalctl -u nginx --since "10 min ago"
✅ 安全审计
grep -E "Failed|Invalid|error" /var/log/secure
logrotate 防止日志过大如果你愿意,我可以:
✅ 给你一条命令直接过滤“真正关键”的日志
✅ 按 CentOS / Ubuntu / Docker / K8s 定制
✅ 帮你写 日志过滤脚本
你现在用的是哪种系统?主要想过滤哪类日志?