在 Linux 中过滤 syslog 常见有几种方式,取决于你想实时查看、按条件搜索、还是长期过滤日志。下面按使用场景给你一份实用指南。
tail + grep适合快速查看当前日志
tail -f /var/log/syslog | grep ssh
只显示包含 ssh 的日志。
忽略大小写
tail -f /var/log/syslog | grep -i error
多条件
tail -f /var/log/syslog | grep -E "ssh|login|fail"
grep "2025-01-21" /var/log/syslog
grep "Jan 21 10:" /var/log/syslog
grep sshd /var/log/syslog
journalctl -u sshd
只看 ssh 服务日志(推荐)
journalctl
journalctl -u nginx
journalctl --since "2025-01-21 10:00" --until "2025-01-21 12:00"
journalctl -p err
级别:
emergalertcriterrwarningnoticeinfodebuggrep "192.168.1.100" /var/log/syslog
grep -v "cron" /var/log/syslog
/var/log/syslog # Debian/Ubuntu
/var/log/messages # RHEL/CentOS
/var/log/auth.log # 登录、sudo、ssh
例如只看登录相关:
grep "Failed password" /var/log/auth.log
编辑:
/etc/rsyslog.conf
或
/etc/rsyslog.d/10-custom.conf
示例:把 ssh 日志单独存放
:programname, isequal, "sshd" /var/log/sshd.log
& stop
重启:
systemctl restart rsyslog
| 需求 | 推荐命令 |
|---|---|
| 实时看 | `tail -f syslog |
| 看某服务 | journalctl -u 服务名 |
| 看错误 | journalctl -p err |
| 查历史 | grep 关键词 /var/log/syslog |
| 永久过滤 | rsyslog 规则 |
如果你愿意,可以告诉我:
我可以直接给你一条“可复制即用”的命令。