journal

https://www.cnblogs.com/sparkdev/p/8795141.html

限定日志所能占用的最高容量

我们可以通过 /etc/systemd/journald.conf 文件来配置 systemd-journald 服务的行为。以下条目可用于限定日志数据可以占用的最大存储数量和日志数据体积的膨胀速度:

SystemMaxUse=:指定journal所能使用的最高持久存储容量。

SystemKeepFree=:指定journal在添加新条目时需要保留的剩余空间。

SystemMaxFileSize=:控制单一journal文件大小,符合要求方可被转为持久存储。

RuntimeMaxUse=:指定易失性存储中的最大可用磁盘容量(/run文件系统之内)。

RuntimeKeepFree=:指定向易失性存储内写入数据时为其它应用保留的空间量(/run文件系统之内)。

RuntimeMaxFileSize=:指定单一journal文件可占用的最大易失性存储容量(/run文件系统之内)。

通过设置上述值,大家可以控制 systemd-journald 服务对服务器空间的消耗及保留方式。

删除旧有日志

如果大家打算对journal记录进行清理,则可使用两种不同方式(适用于systemd 218及更高版本)

如果使用--vacuum-size选项,则可硬性指定日志的总体体积,意味着其会不断删除旧有记录直到所占容量符合要求:

journalctl --vacuum-size=1G

另一种方式则是使用--vacuum-time选项。任何早于这一时间点的条目都将被删除。
例如,去年之后的条目才能保留:

journalctl --vacuum-time=1years
journalctl --vacuum-time='2 weeks'
journalctl --vacuum-time=1s
journalctl --vacuum-time=2d
journalctl --vacuum-size=50M

清理完之后重启rsyslog

systemctl restart rsyslog.service

journalctl [OPTIONS] [MATCHES]

OPTIONS

-u #显示指定的unit的日志信息

-f #实时更新

--since TIME --unitl TIME #设置输出日志信息的开始与结束时间

EXAMPLE

journalctl -u sshd.service -f #实时查看sshd服务的日志信息

journalctl --since "2018-11-13" --until "2018-11-14 03:00" #

查看所有日志(默认情况下 ,只保存本次启动的日志)

journalctl

查看内核日志(不显示应用日志)

$ sudo journalctl -k

查看系统本次启动的日志

$ sudo journalctl -b
$ sudo journalctl -b -0

查看上一次启动的日志(需更改设置)

$ sudo journalctl -b -1

查看指定时间的日志

$ sudo journalctl --since="2012-10-30 18:17:16"
$ sudo journalctl --since "20 min ago"
$ sudo journalctl --since yesterday
$ sudo journalctl --since 09:00 --until "1 hour ago"

显示尾部的最新10行日志

$ sudo journalctl -n

显示尾部指定行数的日志

$ sudo journalctl -n 20

查看指定服务的日志

$ sudo journalctl /usr/lib/systemd/systemd

查看指定进程的日志

$ sudo journalctl _PID=1

查看某个路径的脚本的日志

$ sudo journalctl /usr/bin/bash

查看指定用户的日志

$ sudo journalctl _UID=33 --since today

查看某个 Unit 的日志

$ sudo journalctl -u nginx.service
$ sudo journalctl -u nginx.service --since today

实时滚动显示某个 Unit 的最新日志

$ sudo journalctl -u nginx.service -f

合并显示多个 Unit 的日志

$ journalctl -u nginx.service -u php-fpm.service --since today

查看指定优先级(及其以上级别)的日志,共有8级

0: emerg
1: alert
2: crit
3: err
4: warning
5: notice
6: info
7: debug

$ sudo journalctl -p err -b

日志默认分页输出,--no-pager 改为正常的标准输出

$ sudo journalctl --no-pager

以 JSON 格式(单行)输出

$ sudo journalctl -b -u nginx.service -o json

以 JSON 格式(多行)输出,可读性更好

$ sudo journalctl -b -u nginx.serviceqq -o json-pretty

显示日志占据的硬盘空间

$ sudo journalctl --disk-usage

指定日志文件占据的最大空间

$ sudo journalctl --vacuum-size=1G

指定日志文件保存多久

$ sudo journalctl --vacuum-time=1years

posted on 2022-09-14 10:56  1226032602  阅读(442)  评论(0编辑  收藏  举报

导航