在 Debian 里,“syslog”通常指 rsyslog(默认日志系统)。过滤方式主要取决于你想看日志时过滤,还是写日志时过滤。下面分情况说明。
grep 过滤grep "error" /var/log/syslog
grep -i "ssh" /var/log/auth.log
按时间:
grep "Aug 20 10:" /var/log/syslog
journalctl(systemd 系统)Debian 默认用 systemd:
journalctl | grep ssh
按服务:
journalctl -u nginx
按优先级(错误以上):
journalctl -p err
按时间:
journalctl --since "2024-08-20 10:00" --until "2024-08-20 11:00"
配置文件位置:
/etc/rsyslog.conf
/etc/rsyslog.d/*.conf
示例:只记录 mail 的错误:
mail.err /var/log/mail.err
丢弃某些日志:
*.debug;auth,authpriv.none /var/log/syslog
把包含 “test” 的日志丢弃:
:msg, contains, "test" stop
把包含 “error” 的写到单独文件:
:msg, contains, "error" /var/log/error.log
& stop
:programname, isequal, "sshd" /var/log/ssh.log
& stop
:hostname, contains, "web01" /var/log/web01.log
:msg, contains, "health check" stop
修改后重启:
systemctl restart rsyslog
grep "sshd" /var/log/auth.log
:programname, isequal, "CRON" stop
*.err /var/log/errors.log
*.*;*.err none
如果你能告诉我:
我可以给你更精确的配置示例。