在 Linux 中“过滤 syslog”通常有几种常见场景,下面按常用程度逐一说明,你可以按需选用。
常见路径:
/var/log/syslog # Debian / Ubuntu
/var/log/messages # RHEL / CentOS
# 查看包含 ssh 的日志
grep ssh /var/log/syslog
# 忽略大小写
grep -i error /var/log/syslog
# 实时过滤
tail -f /var/log/syslog | grep ssh
grep "2025-01-20" /var/log/syslog
现代 Linux(Ubuntu 16+、CentOS 7+)都使用 systemd-journald。
journalctl -u ssh
journalctl -u nginx
journalctl --since "2025-01-20 10:00" --until "2025-01-20 12:00"
journalctl -p err
journalctl -p warning
优先级说明:
0 emerg
1 alert
2 crit
3 err
4 warning
5 notice
6 info
7 debug
journalctl -f
journalctl -u ssh -p err --since today
journalctl _PID=1234
journalctl /usr/sbin/sshd
journalctl _UID=1000
如果你是想控制哪些日志被记录,而不是事后查看。
# /etc/rsyslog.d/ssh.conf
:programname, isequal, "sshd" {
*.info /var/log/sshd.log
stop
}
然后重启:
systemctl restart rsyslog
journalctl -u ssh | grep "Failed"
grep "192.168.1.100" /var/log/syslog
journalctl -n 100
| 需求 | 推荐方式 |
|---|---|
| 实时查看 | journalctl -f |
| 按服务 | journalctl -u xxx |
| 按错误 | journalctl -p err |
| 老系统 | grep /var/log/syslog |
| 控制记录 | rsyslog 规则 |
如果你能告诉我:
我可以给你一条最精确的命令或配置。