温馨提示×

debian日志如何过滤信息

小樊
47
2026-09-16 06:44:50
栏目: 智能运维

在 Debian 系统中,日志过滤通常取决于你使用的日志系统(rsyslog / journald)以及你想从哪类日志中提取信息。下面按常见场景给你一个实用指南。


一、使用 journalctl(systemd 日志,最常见)

Debian 默认使用 systemd-journald

1. 按服务过滤

journalctl -u nginx
journalctl -u ssh.service

2. 按时间过滤

journalctl --since "2024-01-01 00:00:00"
journalctl --since "1 hour ago"
journalctl --until "10 minutes ago"

3. 按优先级(错误/警告)

journalctl -p err
journalctl -p warning..err

4. 按关键字过滤

journalctl | grep "error"
journalctl -u nginx | grep "timeout"

5. 实时跟踪 + 过滤

journalctl -f -u docker

二、使用 rsyslog(传统日志文件)

日志通常位于:

/var/log/syslog
/var/log/messages
/var/log/auth.log

1. 使用 grep 过滤

grep "sshd" /var/log/auth.log
grep -i "error" /var/log/syslog

2. 按时间范围

grep "Jan 15 10:" /var/log/syslog

3. 实时查看

tail -f /var/log/syslog
tail -f /var/log/auth.log | grep "Failed"

三、按用户 / IP / 进程过滤

登录失败(SSH)

grep "Failed password" /var/log/auth.log

某个 IP

grep "192.168.1.100" /var/log/auth.log

某个进程

ps aux | grep nginx
journalctl _PID=1234

四、使用 awk / sed 高级过滤

提取某列

awk '{print $1, $2, $3}' /var/log/syslog

统计错误次数

grep "error" /var/log/syslog | wc -l

五、日志轮转注意

Debian 使用 logrotate

/var/log/syslog
/var/log/syslog.1
/var/log/syslog.2.gz

查看压缩日志:

zcat /var/log/syslog.2.gz | grep "error"

六、推荐组合用法(实战示例)

journalctl -u nginx --since "today" | grep -i "error"
tail -f /var/log/auth.log | grep "Failed"

如果你能告诉我:

  • Debian 版本
  • 使用的是 journald 还是 rsyslog
  • 想过滤什么内容(如 SSH、Nginx、错误、某个 IP)

我可以给你更精确的命令示例

0