温馨提示×

Debian日志怎么过滤

小樊
40
2026-07-12 16:57:55
栏目: 智能运维

在 Debian 系统中,日志过滤主要依赖 systemd-journald(现代 Debian 默认)和 rsyslog(传统日志系统)。下面按常见场景给你一个实用速查表。


一、使用 journalctl(推荐,systemd 系统)

1️⃣ 查看所有日志(实时)

journalctl -f

2️⃣ 按服务过滤

journalctl -u nginx
journalctl -u ssh

3️⃣ 按时间过滤

journalctl --since "2025-01-01"
journalctl --since "1 hour ago"
journalctl --since "2025-01-01 08:00" --until "2025-01-01 10:00"

4️⃣ 按优先级过滤(重要)

journalctl -p err
journalctl -p warning

优先级:

0 emerg
1 alert
2 crit
3 err
4 warning
5 notice
6 info
7 debug

5️⃣ 按进程 / PID

journalctl _PID=1234

6️⃣ 按用户

journalctl _UID=1000

7️⃣ 组合过滤(非常常用)

journalctl -u nginx -p err --since "10 minutes ago"

8️⃣ 输出为 JSON(方便脚本)

journalctl -o json
journalctl -o json-pretty

二、使用 grep 过滤传统日志(/var/log)

1️⃣ 过滤 SSH 登录日志

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

2️⃣ 实时过滤

tail -f /var/log/syslog | grep sshd

3️⃣ 忽略大小写

grep -i error /var/log/syslog

4️⃣ 显示前后行

grep -C 3 "error" /var/log/syslog

三、rsyslog 日志位置(Debian 常见)

日志文件 说明
/var/log/syslog 系统通用日志
/var/log/auth.log 认证、SSH
/var/log/kern.log 内核日志
/var/log/dpkg.log 软件安装
/var/log/nginx/ Nginx
/var/log/mysql/ MySQL

四、按“关键词 + 时间”过滤(高级)

1️⃣ 今天某个关键词

grep "error" /var/log/syslog | grep "$(date +%b\ %e)"

2️⃣ 统计错误次数

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

五、如果你只想看“最近一次启动”的日志

journalctl -b

或上一次启动:

journalctl -b -1

六、常见实战示例

✅ 查看 SSH 登录失败:

journalctl -u ssh | grep "Failed"

✅ 查看 Nginx 报错:

journalctl -u nginx -p err

✅ 查看系统是否 OOM:

journalctl | grep -i "out of memory"

如果你愿意,可以告诉我:

  • Debian 版本(10 / 11 / 12)
  • 服务器还是桌面
  • 想过滤 哪种日志(SSH / 服务 / 内核 / 应用)

我可以给你更精确的命令。

0