在 Linux 中查看服务日志的方法取决于你使用的发行版、服务管理方式(systemd / init.d)以及具体的服务类型。下面按常见场景系统说明。
journalctl -u 服务名
示例:
journalctl -u nginx
journalctl -u docker
journalctl -u sshd
journalctl -u nginx -f
journalctl -u nginx --since "2025-01-01" --until "2025-01-10"
或:
journalctl -u nginx --since "10 minutes ago"
journalctl -u nginx -b
journalctl -u nginx -x
journalctl
服务日志通常写在 /var/log 下:
ls /var/log/
常见日志文件:
| 服务 | 日志位置 |
|---|---|
| Nginx | /var/log/nginx/error.log |
| Apache | /var/log/httpd/ 或 /var/log/apache2/ |
| MySQL | /var/log/mysqld.log |
| 系统日志 | /var/log/messages |
| 认证日志 | /var/log/secure |
查看方式:
tail -f /var/log/nginx/error.log
docker logs 容器名或ID
docker logs -f 容器名
tail -f /var/log/messages # CentOS/RHEL
tail -f /var/log/syslog # Ubuntu/Debian
dmesg
dmesg -T
systemctl status 服务名
journalctl -p err -xb
journalctl -u nginx | grep error
| 场景 | 推荐命令 |
|---|---|
| systemd 服务 | journalctl -u 服务名 |
| 实时日志 | journalctl -u 服务名 -f |
| Web 服务 | /var/log/nginx/ |
| Docker | docker logs |
| 系统级问题 | journalctl / /var/log/messages |
如果你愿意,可以告诉我:
我可以给你精确到命令级别的示例。