CentOS快速查看系统日志(干货,建议收藏)
关注上方“Linux 研习社”回复“速查表”
免费领取Linux命令速查表一份!
今天给大家讲解一下CentOS怎么快速查看系统日志,干货哦,新手赶紧收藏。
Systemd是Linux系统工具,它统一管理所有Unit的启动日志,是一个收集并存储各类日志数据的系统服务。它创建并维护一个带有索引的、结构化的日志数据库, 并可以收集来自各种不同渠道的日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。日志的配置文件是/etc/systemd/journald.conf。journalctl功能强大,用法非常多。本文将介绍journalctl的相关使用方法。
journalctl所属的包
whereis journalctl
常用操作
常用的操作有哪些呢?
-
显示所有日志:journalctl
-
查看系统本次启动的日志:journalctl -b
-
查看最后10条日志:journalctl -n 10
-
实时跟踪滚动日志:journalctl -f
-
只显示冲突、告警和错误:journalctl -p err..alert
-
显示某个单元日志(也可以同时显示多个增加多个 -u nginx.service -u php-fom.service):journalctl -u nginx.service
-
查看内核日志:journalctl -k
根据时间查找
按照引导环境查看日志条目当然非常重要,但我们往往还需要使用与系统引导无关的时间窗作为浏览基准。这种情况在长期运行的服务器当中较为常见。
大家可以利用–since
与–until
选项设定时间段,二者分别负责说明给定时间之前与之后的记录。
时间值可以多种格式输出。对于绝对时间值,大家可以使用以下格式:
YYYY-MM-DD HH:MM:SS
例如,我们可以通过以下命令查看全部2020年7月20日下午1:15之后的条目:
journalctl --since "2020-07-20 13:15:00"
如果以上格式中的某些组成部分未进行填写,系统会直接进行默认填充。例如,如果日期部分未填写,则会直接显示当前日期。如果时间部分未填写,则缺省使用“00:00:00”(午夜)。第二字段亦可留空,默认值为“00”:
journalctl --since "2020-07-19" --until "2020-07-20 13:00"
另外,journal还能够理解部分相对值及命名简写。例如,大家可以使用“yesterday”、“today”、“tomorrow”或者“now”等表达。另外,我们也可以使用“-”或者“+”设定相对值,或者使用“ago”之前的表达。
-
获取昨天数据的命令如下:
journalctl –since yesterday
类似的还有如下命令:
-
journalctl --since "20 min ago" #查找20分钟前的日志
-
journalctl --since today #查找今天的日志
-
journalctl --until 2020-07-20 #查找2020-07-20日期的日志
根据单元查找
我们可以使用-u选项,来实现按单元过滤。
例如,要查看系统上全部来自Nginx单元的日志,可使用以下命令:
journalctl -u nginx.service
一般来讲,我们可能需要同时按单元与时间进行信息过滤。例如,检查今天某项服务的运行状态:
journalctl -u nginx.service -u php-fpm.service --since today
当然我们还可以按进程和按用户来查找:
-
查找指定用户(UID)日志:journalctl _UID=1000 -
查看指定进程的日志:journalctl _PID=1
重启systemd-journald服务
systemctl restart systemd-journald.service
显示日志占据的硬盘空间
journalctl --disk-usage
清理现有的日志到200M以下
journalctl --vacuum-size=200M
end
往期推荐
号外号外:Linux 交流群已成立
无论你是科班出生、还是培训班出生、亦或是刚入门的小白,从你入行这一刻起,就得保持终生学习的心态。船神创建了一个「Linux 交流群」,希望更好的与大家一起学习交流,我们自己的职业生涯掌握在自己手中。
一定要备注:城市+昵称+技术方向,根据格式备注,可更快被通过且邀请进群哟