用 journalctl 看服务日志:只看报错的那几行
服务出问题,第一反应往往是翻日志。systemd 管的服务,日志都收在 journal 里,用 journalctl 就能看,比到处找日志文件省事,关键是它自带过滤,不用在一堆行里大海捞针。
先看最常用的一条:journalctl -u nginx --since “1 hour ago”。-u 指定只看这一个服务的日志,–since 只看最近一小时的,两个一配,出来的就是最近这段时间这个服务干了什么,几十行就能看完。
想只看报错的,再加一个 -p err:journalctl -u nginx -p err --since today。-p 是按级别过滤,err 往上就是 error、crit、alert、emerg 这些真正要命的,info 和 debug 全被挡在外面。服务半夜挂了,早上起来一条命令就能看到它最后报了什么错。
日志太长还可以用 -f 跟着看:journalctl -u myapp -f。-f 是实时跟踪,新日志一行一行往下滚,相当于给服务接了个直播,改完配置重启服务后,盯着它看启动过程有没有报错,比重启完再回头翻日志直观得多。
新手最容易踩的三个坑:第一,忘了加 -u,结果把全系统的日志都翻出来了,几千行里根本找不到自己要的服务;第二,时间范围没加,默认从系统装好那天开始看,翻到手酸;第三,看到报错就慌,其实要先看时间戳——半个月前的报错和今天的故障可能完全没关系,先确认报错时间和故障时间对得上,再往下查。
把这几条练熟,服务出问题时你能先分清是配置错了、端口被占了、依赖没起来,还是磁盘满了,定位快一半,修起来也心里有数。
- 点赞
- 收藏
- 关注作者
评论(0)