📜  清除 systemd 日志 (1)

📅  最后修改于: 2023-12-03 15:40:47.102000             🧑  作者: Mango

清除 systemd 日志

在使用 systemd 的过程中,系统日志可能会占据过多的磁盘空间,需要定期清理。本文介绍如何清除 systemd 日志。

查看日志占用空间

首先,我们需要查看当前日志占用磁盘空间的情况。可以使用 journalctl 命令:

journalctl --disk-usage

它会输出当前日志的占用空间,类似下面这样:

Archived and active journals take up  1.1G
清除过期日志

接下来,我们可以使用 journalctl 命令清除过期的日志。 journalctl 可以按日期区间、日志级别和日志来源等方式过滤日志,我们这里只讲如何按日期清除。

比如,如果我们想清除 7 天前的日志,可以使用下面的命令:

sudo journalctl --vacuum-time=7d

其中 --vacuum-time 参数指定了日期区间,单位可以有 s(second), m(minute), h(hour), or d(day)。

清除所有日志

如果你需要彻底清除所有 systemd 日志,可以使用下面的命令:

sudo truncate -s0 /var/log/journal/*

这会清除所有日志文件,但不会删除日志目录。

自动清理日志

如果你想定期自动清理日志,可以使用 systemd-tmpfiles 来定期清理过期的 systemd 日志。比如,我们可以创建一个定义在 /etc/tmpfiles.d 下的文件 /etc/tmpfiles.d/systemd.conf,然后添加下面的内容:

# 清理 7 天前的日志
R /var/log/journal/* -7d

这个文件告诉 systemd-tmpfiles 定期清理 7 天前的日志。系统每天都会执行这个清理操作。

结论

本文介绍了清除 systemd 日志的几种方法,你可以根据自己的需要选择。如果你想保留一些日志,可以使用 journalctl 命令按需清除;如果你想彻底清除所有日志,可以使用 truncate 命令;如果你想自动清理过期的日志,可以使用 systemd-tmpfiles 来定期清理。