Ubuntu Java日志清理策略
一 策略总览与优先级
二 快速诊断与应急安全清理
df -hTdu -sh /var/*ls -lhS /var/log | headtruncate -s 0 /path/app.log 或 : > /path/app.logdf -h 观察空间是否释放gzip app.log 备份或直接 rm -f app.logjournalctl 收缩:
journalctl --disk-usagesudo journalctl --vacuum-time=1wsudo journalctl --vacuum-size=500Mrm 正在被进程写入的日志;先截断或让日志轮转释放句柄,再清理历史归档。三 推荐方案与配置示例
maxHistory(保留天数)与 totalSizeCap(总大小上限)。/opt/app/logs/app.log {
daily
rotate 20
compress
missingok
notifempty
create 644 app app
copytruncate
}
sudo logrotate -d /etc/logrotate.d/app(干跑),sudo logrotate -f /etc/logrotate.d/app(强制生效)。0 0 * * * find /var/log -type f -name "*.log" -mtime +30 -delete
0 1 * * * find /var/log -type f -name "*.log" -mtime +7 -exec truncate -s 0 {} \;
>> /var/log/log-clean.log 2>&1。四 不同场景的配置要点
application.yml 中控制日志滚动与保留(如按天/按大小、最大历史天数),并确保使用 RollingFileAppender;避免仅输出到控制台导致无法轮转。五 维护与避坑清单
journalctl --vacuum-* 收缩,避免与业务日志争抢磁盘。logrotate -d 干跑验证配置;为清理脚本增加日志与告警;在变更窗口执行可能影响在线的操作。