在 CentOS 中,/var/log/messages 是 rsyslog 记录的系统日志(包含内核、服务、通用信息)。如果你是想过滤、查看或屏蔽某些 message 信息,常见做法如下:
grep 过滤关键词grep "error" /var/log/messages
grep -i "fail" /var/log/messages
只看某服务:
grep "sshd" /var/log/messages
排除某些内容:
grep -v "cron" /var/log/messages
tail -f /var/log/messages | grep sshd
CentOS 7 以后很多日志由 systemd-journald 管理。
journalctl
journalctl -u sshd
journalctl -u nginx
journalctl --since "2025-01-01" --until "2025-01-10"
journalctl --since "1 hour ago"
journalctl -p err
journalctl -p warning
优先级:
0 emerg
1 alert
2 crit
3 err
4 warning
5 notice
6 info
7 debug
vim /etc/rsyslog.conf
# 或
vim /etc/rsyslog.d/filter.conf
:msg, contains, "cron" stop
或屏蔽某服务:
:programname, isequal, "sshd" stop
systemctl restart rsyslog
⚠️ 注意:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
含义:
| 需求 | 推荐方式 |
|---|---|
| 临时查看 | grep / journalctl |
| 实时查看 | tail -f + grep |
| 按服务查 | journalctl -u |
| 永久屏蔽 | rsyslog 规则 |
| 生产环境 | 不建议直接丢弃日志 |
如果 /var/log/messages 日志太多,通常原因:
可以先用:
journalctl -p err
定位问题源头。
如果你能具体说明:
我可以给你更精确的配置示例。