在 Debian 系统中,日志大小的管理主要依赖于 systemd-journald(现代 Debian 默认)和 rsyslog(传统 syslog)。下面分别说明如何设置日志大小限制。
现代 Debian(8+)默认使用 systemd,日志由 journald 管理。
sudo nano /etc/systemd/journald.conf
[Journal]
# 限制持久化日志总大小
SystemMaxUse=200M
# 限制内存中日志大小
RuntimeMaxUse=100M
# 单个日志文件最大大小
SystemMaxFileSize=50M
# 保留时间(可选)
MaxRetentionSec=1week
常用参数说明:
| 参数 | 说明 |
|---|---|
SystemMaxUse |
磁盘上持久日志最大占用 |
RuntimeMaxUse |
内存(/run)中日志最大占用 |
SystemMaxFileSize |
单个日志文件大小 |
MaxRetentionSec |
日志保留时间 |
sudo systemctl restart systemd-journald
journalctl --disk-usage
如果你仍在使用 rsyslog,可以通过 logrotate 控制日志大小。
sudo nano /etc/logrotate.d/rsyslog
示例配置:
/var/log/syslog
/var/log/messages
{
rotate 7
size 50M
missingok
notifempty
compress
delaycompress
postrotate
/usr/lib/rsyslog/rsyslog-rotate 2>/dev/null || true
endscript
}
说明:
size 50M:日志达到 50MB 就轮转rotate 7:保留 7 个旧日志compress:压缩旧日志sudo logrotate -d /etc/logrotate.d/rsyslog
sudo journalctl --vacuum-size=100M
sudo journalctl --vacuum-time=7d
sudo rm -f /var/log/syslog.*
✅ systemd 系统
/etc/systemd/journald.confjournalctl --vacuum-*✅ 传统系统 / rsyslog
logrotate 控制大小和轮转如果你愿意,可以告诉我:
cat /etc/debian_version)我可以给你更精确的配置方案。