📅  最后修改于: 2023-12-03 15:11:07.932000             🧑  作者: Mango
在 Linux 操作系统中,systemd 负责管理多个系统组件和管理日志的记录。在长时间使用系统后,系统的日志可能会非常庞大,占用大量磁盘空间。因此,我们需要定期清理日志。下面介绍如何在 systemd 中清除日志。
使用以下命令查看当前日志大小:
journalctl --disk-usage
输出会显示当前磁盘上的日志大小和可用空间。
如果你想要立即清除所有的日志,可以使用以下命令:
sudo journalctl --rotate && sudo journalctl --vacuum-time=1s
--rotate
选项将当前的日志轮换到一个新的文件。--vacuum-time=1s
选项表示只保留最近一秒钟的日志,其余的都会被删除。你也可以使用其他值,如 --vacuum-time=1d
表示只保留最近一天的日志。如果你只想清除某个特定 service 或者 unit 的日志,可以使用以下命令:
sudo journalctl --unit=unit_name --vacuum-time=1s
其中 unit_name
为你想要清除日志的 service 或者 unit 的名字。
如果你想要自动定期清除系统日志,可以设置一个 systemd timer。例如,以下脚本会在每周的星期天清除所有的日志:
/etc/systemd/system/logrotate.timer
,写入以下内容:[Unit]
Description=Clear systemd journal logs on a weekly basis
[Timer]
OnCalendar=Sun *-*-* 00:00:00
RandomizedDelaySec=1day
Persistent=true
[Install]
WantedBy=timers.target
/etc/systemd/system/logrotate.service
,写入以下内容:[Service]
Type=oneshot
ExecStart=/usr/bin/journalctl --rotate && /usr/bin/journalctl --vacuum-time=1s
sudo systemctl enable logrotate.timer
sudo systemctl start logrotate.timer
此文介绍了如何在 systemd 中清除日志,包括清除所有日志,清除特定单位的日志和自动清除日志。如果你的系统日志占用了太多的磁盘空间,不要忘记按照本文的方法清理日志哦!