在 Debian 里,“过滤 syslog”通常指查看/提取感兴趣的日志,或让 rsyslog 只记录/转发某些内容。下面按常见需求分别说明。
journalctl(systemd 系统,推荐)Debian 默认用 systemd + journald。
# 按服务过滤
journalctl -u ssh.service
# 按时间
journalctl --since "2024-01-01 00:00:00" --until "2024-01-02"
# 按优先级(err 及以上)
journalctl -p err
# 按关键字
journalctl | grep "Failed password"
grep 过滤 /var/log/sysloggrep "sshd" /var/log/syslog
grep -i "error" /var/log/syslog
tail -f /var/log/syslog | grep "cron"
Debian 使用 rsyslog,配置文件在:
/etc/rsyslog.conf
/etc/rsyslog.d/*.conf
mail.err /var/log/mail.err
:programname, contains, "systemd" stop
:programname, isequal, "sshd" /var/log/sshd.log
& stop
修改后重启:
systemctl restart rsyslog
# 忽略 cron 的 session opened/closed
:msg, contains, "session opened for user" stop
:msg, contains, "session closed for user" stop
programname:程序名(sshd、cron)hostname:主机名syslogfacility(auth, mail, cron…)syslogpriority(info, warn, err…)msg:日志内容# 查看占用
du -h /var/log
# 清理旧日志
journalctl --vacuum-size=100M
如果你能具体说:
我可以给你更精确的配置。