在 Ubuntu 中,syslog 通常由 rsyslog(或较新的 systemd-journald + rsyslog)管理。常见“过滤”需求有几种:
grep 过滤日志grep "error" /var/log/syslog
grep -i "ssh" /var/log/syslog
journalctl(Ubuntu 16.04+)journalctl -p err # 只看错误
journalctl -u ssh # 某服务
journalctl -t sshd # 某标签
journalctl --since "2024-01-01" --until "2024-01-02"
journalctl | grep ssh
配置文件:
/etc/rsyslog.conf
/etc/rsyslog.d/*.conf
:programname, isequal, "sshd" /var/log/ssh.log
& stop
:msg, contains, "error" /var/log/error.log
& stop
*.err /var/log/errors.log
:msg, contains, "heartbeat" stop
修改后重启:
sudo systemctl restart rsyslog
*.*;auth,authpriv.none -/var/log/syslog
/var/log/syslog
/var/log/auth.log
/var/log/kern.log
# /etc/rsyslog.d/ssh.conf
:programname, isequal, "sshd" /var/log/ssh.log
& stop
如果你能说清楚:
我可以给你更精确的配置示例。