温馨提示×

ubuntu syslog如何查进程

小樊
47
2026-09-08 02:58:15
栏目: 智能运维

在 Ubuntu 里,syslog 本身不是“按进程查”的工具,它是按设施(facility)+优先级记录日志的。不过你可以通过以下几种方式,从 syslog 或相关日志中定位某个进程的日志


一、syslog 日志文件位置(Ubuntu)

Ubuntu 一般使用 rsyslog

/var/log/syslog        # 主要系统日志
/var/log/messages      # 某些版本有
/var/log/auth.log      # 认证相关(sshd、sudo)

二、按“进程名”查 syslog

1️⃣ grep 进程名

grep nginx /var/log/syslog
grep sshd /var/log/syslog

⚠️ 前提是进程自己往 syslog 写日志(很多服务会)


2️⃣ 按 systemd 服务名查(推荐)

现代 Ubuntu 进程通常由 systemd 管理:

journalctl -u nginx
journalctl -u ssh
journalctl -u mysql

实时查看:

journalctl -u nginx -f

按时间:

journalctl -u nginx --since "2024-01-01 10:00"

三、按 PID 查(syslog 中有 pid)

syslog 通常包含:

Jan 10 10:00:01 host sshd[12345]: ...

查某个 PID:

grep 12345 /var/log/syslog

四、如果进程没写 syslog(常见情况)

1️⃣ 看进程自己的日志

ls /var/log/<进程名>/

例如:

/var/log/nginx/
/var/log/mysql/

2️⃣ 用 strace 实时看进程在干嘛

strace -p <PID>

3️⃣ 看进程当前打开的文件

lsof -p <PID>

五、总结(最常用)

场景 命令
查进程日志 journalctl -u 服务名
查 syslog grep 进程名 /var/log/syslog
按 PID grep PID /var/log/syslog
实时 journalctl -u 服务名 -f

如果你能告诉我:

  • 是哪个进程(nginx / python / docker / 自定义程序)
  • 查历史日志 还是 实时监控

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

0