在 Debian 系统中,日志大小控制主要依赖 systemd-journald(现代 Debian 默认)和 rsyslog(传统 syslog)。下面分别说明如何设置日志大小。
Debian 8 及以后版本默认使用 systemd,日志由 systemd-journald 管理。
/etc/systemd/journald.conf
编辑配置:
sudo nano /etc/systemd/journald.conf
关键参数:
[Journal]
# 持久化日志总大小限制
SystemMaxUse=200M
# 单个日志文件大小
SystemMaxFileSize=50M
# 运行时日志(内存中)大小
RuntimeMaxUse=100M
# 保留时间(可选)
MaxRetentionSec=1week
说明:
SystemMaxUse:磁盘上 /var/log/journal 最大占用RuntimeMaxUse:内存中 /run/log/journal 最大占用K, M, Gsudo systemctl restart systemd-journald
journalctl --disk-usage
如果你仍使用 rsyslog(常见于老系统或服务器):
sudo apt install rsyslog
rsyslog 本身不限制大小,而是由 logrotate 管理。
配置文件:
/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:日志超过 50M 就轮转rotate 7:最多保留 7 个旧文件compress:压缩旧日志sudo logrotate -vf /etc/logrotate.d/rsyslog
sudo journalctl --vacuum-size=100M
sudo journalctl --vacuum-time=7d
sudo rm /var/log/syslog.*
sudo rm /var/log/messages.*
| 场景 | 建议 |
|---|---|
| 服务器 | SystemMaxUse=200M |
| 桌面 | SystemMaxUse=100M |
| 容器 | RuntimeMaxUse=50M |
| 长期审计 | MaxRetentionSec=30d |
ps -ef | grep -E 'journald|rsyslog'
或:
ls /var/log/journal
/var/log/journal → systemd-journald/var/log/syslog → rsyslog如果你愿意,可以告诉我:
cat /etc/debian_version)我可以给你一套最合适的日志大小配置方案。