journalctl命令-内核应用日志管理工具
journald可以记录开机过程的信息,包括启动服务和服务启动失败的情况等。 它由systemd调用来协助记录日志,systemd-journald会将先将信息记录到内存中,再由rsyslogd记录到硬盘中。
journalctl 语法
journalct [-nrpf] [--since TIME] [--until TIME] _optional
默认会显示全部的 log 内容,从旧的输出到最新的信息
参数
描述
-n
显示最近 n 行的信息,找最新信息时有用
-r
反向输出,从最新的输出到最旧的输出
-p
显示后面接的信息重要性排序,前一章讲解的日志级别
-f
类似 tail -f 功能,持续显示 journal 日志内容
-o
输入格式(short, short-iso,short-precise, short-monotonic, verbose,export, json, json-pretty,json-sse, cat)
--since --until
设置开始与结束时间,只显示某段时间范围内的数据
_SYSTEMD_UNIT=unit.service
只输出某个服务的信息,也可以用-u
_COMM=bash
只输出与 bash 有关的信息
_PID=pid
只输出某个 PID 的信息
_UID=uid
只输出某个 uid 的信息
SYSLOG_FACILITY=[0-23]
使用 syslog.h 规范的服务相对应的序号来显示指定数据
部分示例
# 显示昨天的日志
journalctl --since yesterday
# 9点后一小时的日志
journalctl --since 9:00 --until "1 hour ago"
# 指定时间范围
journalctl --since "2022-01-16 9:00:00" --until "2022-01-16 10:00:00"
# 只看信息严重等级为ERROR的信息
journalctl -p err
# 只看指定服务的日志信息
journalctl -u ntpd有时会发现日志目录下journal日志占用比较大的硬盘空间 清理/var/log/journal文件的方法
# 临时清理
echo "" > system.journal
# 只保留近4周的日志
journalctl --vacuum-time=4w
# 只保留指定大小的日志
journalctl --vacuum-size=500M最后更新于