在 Linux 上“压缩旧日志”常见有 手动压缩、脚本+定时任务、以及 使用系统自带日志工具 三种方式。下面按常见场景给你说明。
gzip /var/log/old.log
生成:old.log.gz
gzip /var/log/*.log.2023*
gzip -k /var/log/old.log
find /var/log -name "*.log" -mtime +7 -exec gzip {} \;
说明:
-mtime +7:修改时间超过 7 天-exec gzip:对找到的文件压缩✅ 可写入 crontab 每天执行:
0 2 * * * find /var/log -name "*.log" -mtime +7 -exec gzip {} \;
适合归档:
tar -czf logs-$(date +%F).tar.gz /var/log/old/
Linux 日志管理标准工具。
/var/log/myapp/*.log {
daily
rotate 30
compress
delaycompress
missingok
notifempty
}
常用参数:
daily / weekly:周期rotate N:保留份数compress:压缩delaycompress:延迟一次压缩size 100M:按大小测试:
logrotate -d /etc/logrotate.d/myapp
Docker 日志建议用:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
| 场景 | 推荐方式 |
|---|---|
| 临时处理 | gzip |
| 定时清理 | find + cron |
| 生产环境 | logrotate ✅ |
| 归档 | tar.gz |
如果你能告诉我:
我可以帮你写一份可直接用的配置或脚本。