journalctl 与 systemd 日志
journalctl 是读取 systemd 日志的命令,后者是被大多数现代 Linux 发行版使用的二进制日志存储。它可以按服务、引导、时间和优先级过滤消息,还可以报告和限制日志的磁盘使用量(在 /var/log/journal 中通常会增长到数吉字节)。
1读取日志
journalctl -u nginx.service 显示单个单元的消息。-b 将输出限制为当前的引导,-b -1 限制为上一次引导。-p err 仅显示错误及更高级别的信息。'--since "1 hour ago"' 按时间进行限制,-f 则实时跟踪新消息。
2磁盘使用情况
journalctl --disk-usage 打印活动日志文件和归档日志文件的总大小。
--vacuum-size=、--vacuum-time= 和 --vacuum-files= 会删除归档的日志文件,直到满足限制条件;它们不会触及活动文件。
3永久限制
限制是在 /etc/systemd/journald.conf 中设置的,例如 SystemMaxUse=500M,然后通过 systemctl restart systemd-journald 应用。如果没有进行设置,journald 默认会将日志保持在文件系统大小的 10% 以内,上限为 4 GB。
如何缩减日志
- 检查大小:
journalctl --disk-usage - 轮转活动文件以便对其进行清理:
sudo journalctl --rotate - 仅保留两周:
sudo journalctl --vacuum-time=2weeks - 或者最多保留 500 MB:
sudo journalctl --vacuum-size=500M - 要使其永久生效,请在
/etc/systemd/journald.conf中设置 SystemMaxUse=500M 并运行:sudo systemctl restart systemd-journald
注意事项
- 清理后的日志将不复存在;请保留足够的历史记录以便排查问题。
- 在 journald 运行期间,请勿手动删除
/var/log/journal中的文件。
相关文章
- logrotatelogrotate 的作用、/etc/logrotate.conf 和 /etc/logrotate.d 中的配置原理,以及如何安全地测试规则。
- 使用 du 和 ncdu 查看磁盘使用情况如何使用 du 和交互式的 ncdu 查找 Linux 磁盘中被占满的内容,并提供保留在单个文件系统中的选项。
- df (磁盘剩余空间)如何读取 df 的输出,为什么普通用户在 Avail 降为零之前 Use% 就可能达到 100%,以及如何使用 df -i 检查 inode。
资料来源
- journalctl(1) man7.org
- journald.conf(5) man7.org
说明: RainServer 为 Linux 服务器提供监控和安全清理功能;它会显示将要发生的变化并首先进行询问。
最后审核: