在 Ubuntu 里,syslog 本身不是“按进程查”的工具,它是按设施(facility)+优先级记录日志的。不过你可以通过以下几种方式,从 syslog 或相关日志中定位某个进程的日志。
Ubuntu 一般使用 rsyslog:
/var/log/syslog # 主要系统日志
/var/log/messages # 某些版本有
/var/log/auth.log # 认证相关(sshd、sudo)
grep nginx /var/log/syslog
grep sshd /var/log/syslog
⚠️ 前提是进程自己往 syslog 写日志(很多服务会)
现代 Ubuntu 进程通常由 systemd 管理:
journalctl -u nginx
journalctl -u ssh
journalctl -u mysql
实时查看:
journalctl -u nginx -f
按时间:
journalctl -u nginx --since "2024-01-01 10:00"
syslog 通常包含:
Jan 10 10:00:01 host sshd[12345]: ...
查某个 PID:
grep 12345 /var/log/syslog
ls /var/log/<进程名>/
例如:
/var/log/nginx/
/var/log/mysql/
strace -p <PID>
lsof -p <PID>
| 场景 | 命令 |
|---|---|
| 查进程日志 | journalctl -u 服务名 |
| 查 syslog | grep 进程名 /var/log/syslog |
| 按 PID | grep PID /var/log/syslog |
| 实时 | journalctl -u 服务名 -f |
如果你能告诉我:
我可以给你更精确的命令。