内容简介
本文介绍在CenOS 7中如何使用Journald服务以及journalctl命令进行日志管理。
持久化日志
需要修改/etc/systemd/journald.conf配置文件中[Journal]部分的Storage属性。
在CentOS Linux release 7.4.1708 (Core)中,默认Storage=auto配置。还可以配置为:
# “volatile”,将日志存储在内存中,即/run/log/journal目录,如果有必要会自动创建。
# “persistent”,日志将保存在磁盘中,即/var/log/journal目录,如果有必要会自动创建。但是,如果在启动期间磁盘不可写,比如无法成功创建/var/log/journal目录,那依旧会写入/run/log/journal目录,如果有必要会自动创建。
# “auto”,类似于”persistent”属性,但是不会自动创建/var/log/journal目录,因此目录/var/log/journal的存在与否,决定了日志的写入位置。
# “none”,关闭所有的存储,接收到的所有日志数据将被丢弃。将被转发到其他的目标,比如控制台、内核日志缓冲,syslog服务等等。
而”auto”是默认值。所以想要持久化日志,执行如下命令即可:
#!/bin/sh # 创建目录 mkdir /var/log/journal # 使用systemd中定义的指令进行初始化 systemd-tmpfiles --create --prefix /var/log/journal # 重启以生效 systemctl restart systemd-journald
清理日志
可以使用--vacuum-size=选项与--vacuum-time=选项清理日志,但是这只能用于清理归档的日志:
#!/bin/sh # 查看日志使用空间,包括归档与活跃的日志 journalctl --disk-usage # 根据时间及大小清理日志 journalctl --vacuum-time=10d journalctl --vacuum-size=2G
参考文献
manpath.be/journald.conf
How do I display log messages from previous boots under CentOS 7?
Clear systemd journal