温馨提示×

centos message怎么过滤内容

小樊
50
2026-10-08 23:50:57
栏目: 智能运维

在 CentOS 里,“message”通常指 系统日志,最常见的有:

  • /var/log/messages(传统 syslog)
  • journalctl(systemd 日志,CentOS 7+)

下面按常见需求说明如何“过滤内容”。


一、过滤 /var/log/messages

1. 按关键字过滤

grep "error" /var/log/messages

忽略大小写:

grep -i "error" /var/log/messages

2. 过滤多个关键字(或)

grep -E "error|fail|timeout" /var/log/messages

3. 排除某些内容

grep -v "cron" /var/log/messages

4. 按时间过滤(近似)

grep "Jan 15 10:" /var/log/messages

5. 实时查看并过滤

tail -f /var/log/messages | grep "sshd"

二、使用 journalctl 过滤(CentOS 7/8/Stream)

1. 按服务过滤

journalctl -u sshd

2. 按时间过滤

journalctl --since "2024-01-15 10:00:00" --until "2024-01-15 11:00:00"

3. 按关键字过滤

journalctl | grep "error"

或:

journalctl -p err

(只显示 error 及以上级别)

4. 实时过滤

journalctl -f | grep "nginx"

三、按日志级别过滤(syslog)

常见级别:

emerg > alert > crit > err > warning > notice > info > debug

在 rsyslog 配置中(如 /etc/rsyslog.conf)可控制:

*.err    /var/log/messages

四、使用 awk 做复杂过滤(示例)

只看包含 “failed” 的某列:

awk '/failed/ {print $1, $2, $5}' /var/log/messages

五、常见场景示例

查看 SSH 登录失败

grep "Failed password" /var/log/secure

查看内核错误

journalctl -k -p err

排除某个 IP

grep -v "192.168.1.100" /var/log/messages

如果你能说清楚:

  • 是 /var/log/messages 还是 journalctl
  • 想过滤什么内容(错误 / 某个服务 / 某个 IP)

我可以直接给你精确命令。

0 踩