在 Debian 系统中,日志文件的轮转(log rotation)通常由 logrotate 工具完成。以下是常见的做法和配置方式。
which logrotate
Debian 默认已安装。
/etc/logrotate.conf/etc/logrotate.d/系统会自动读取 /etc/logrotate.d/ 下的所有文件。
logrotate -d /etc/logrotate.conf # 测试(不实际执行)
logrotate -f /etc/logrotate.conf # 强制轮转
例如你有一个日志:/var/log/myapp.log
sudo nano /etc/logrotate.d/myapp
/var/log/myapp.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
postrotate
systemctl reload myapp > /dev/null 2>&1 || true
endscript
}
daily:每天轮转(也可 weekly / monthly)rotate 7:保留 7 个旧日志compress:压缩旧日志delaycompress:延迟一次压缩notifempty:空文件不轮转create:新建日志文件权限postrotate:轮转后重启/重载服务Debian 默认使用 rsyslog,其日志如:
/var/log/syslog/var/log/auth.log这些已由:
/etc/logrotate.d/rsyslog
自动管理,一般不需要手动改。
如果你使用的是 systemd-journald:
journalctl --disk-usage
编辑:
sudo nano /etc/systemd/journald.conf
示例:
SystemMaxUse=500M
MaxRetentionSec=2week
重启服务:
sudo systemctl restart systemd-journald
systemctl status cron
logrotate -d /etc/logrotate.d/myapp
如果你有 具体日志路径 或 特定服务(如 nginx、docker、自定义程序),可以告诉我,我可以给你更精确的配置示例。