journalctl 常用命令
从2012年开始,大部分linux发行版本开始从传统的 systemv 初始化系统移植到一个叫做 systemd 的全新系统。systemd 用来启动系统并管理进程。systemd 包含了一个叫做 journalctl 的辅助组件,其主要作用是管理系统的事件日志记录。
systemctl 介绍
systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。
重要:systemctl接受服务(.service),挂载点(.mount),套接字(.socket)和设备(.device)等作为单位。
journalctl概述
journalctl可以查看所有的系统日志文件,由于日志信息量很大,journalctl还提供了各种参数帮助用户更快速的定位到日志信息。
默认情况下,用户都可以访问自己的日志。对于系统主日志和其他用户的日志,仅限于有权限的用户访问,比如root用户,wheel组和systemd组的用户。
journalctl命令详解
显示所有的信息
journalctl
如果不带参数,journalctl将显示所有的信息(从旧到新)
journalctl -xefu nginx
反序输出
journalctl -r
-r参数表示反序输出(从新到旧)
跟踪日志文件,读取最新条目
journalctl -f
要使用 journalctl 跟踪日志文件 (读取最新条目), 只需在命令后加参数 “-f” 即可。会实时输出最新日志
指定输出显示的大小
journalctl -n []
可以通过-n 或者 --lines=参数来指定显示的行数大小。
显示指定时间的事件日志
journalctl --since "2021-01-05 20:00:00" --until "2021-01-06 14:00:00"journalctl --since 09:00 --until "1 hour ago"
journalctl可以显示指定时间段内发生的事件日志。 通过 since 和 until 参数来实现。
其中日期的格式是“YY-MM-DD HH:MM:SS”
查看某些服务的日志
journalctl -u nginx.servicejournalctl -u nginx.service -u docker.service
格式化输出的信息
通过-o 或者--output 可以指定日志的输出格式journalctl -o short //默认选项journalctl -o short-precise //时间更精细
Journal维护
存储太多数据会带来巨大压力,因此我们还需要了解如何清理部分陈旧日志以释放存储空间。
查看磁盘使用量
使用--disk-usage标记查看journal的当前磁盘使用量:journalctl --disk-usage
删除旧有日志
如果需要对journal记录进行清理,则可使用两种不同方式(适用于systemd 218 及更高版本)。
使用--vacuum-size选项,则可硬性指定日志的总体体积,意味着其会不断删除旧有记录直到所占容量符合要求:
journalctl --vacuum-size=1G另一种方式则是使用--vacuum-time选项。任何早于这一时间点的条目都将被删除。
例如,去年之后的条目才能保留:journalctl --vacuum-time=1years
限定Journal扩展
可以配置自己的服务器以限定journal所能占用的最高容量。要实现这一点,我们需要编辑/etc/systemd/journald.conf文件。
以下条目可用于限定journal体积的膨胀速度:
SystemMaxUse=: 指定journal所能使用的最高持久存储容量。
SystemKeepFree=: 指定journal在添加新条目时需要保留的剩余空间。
SystemMaxFileSize=: 控制单一journal文件大小,符合要求方可被转为持久存储。
RuntimeMaxUse=: 指定易失性存储中的最大可用磁盘容量(/run文件系统之内)。
RuntimeKeepFree=: 指定向易失性存储内写入数据时为其它应用保留的空间量(/run文件系统之内)。
RuntimeMaxFileSize=: 指定单一journal文件可占用的最大易失性存储容量(/run文件系统之内)。
journalctl 常用命令
https://blog.wty.cool/2023/03/06/journalctl-common-commands/


