📅  最后修改于: 2023-12-03 15:40:47.102000             🧑  作者: Mango
在使用 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 来定期清理。