在 Linux 下压缩日志文件常见且实用的方法有很多,下面按使用频率和场景给你系统讲一下。
gzip access.log
✅ 结果:access.log.gz
❌ 原文件会被删除
解压:
gunzip access.log.gz
# 或
gzip -d access.log.gz
保留原文件压缩:
gzip -k access.log
bzip2 access.log
解压:
bunzip2 access.log.bz2
xz access.log
解压:
unxz access.log.xz
tar -czf logs.tar.gz /var/log/*.log
解压:
tar -xzf logs.tar.gz
logrotate(生产环境标准方案)配置文件示例:
/var/log/nginx/*.log {
daily
rotate 7
compress
missingok
notifempty
sharedscripts
postrotate
systemctl reload nginx
endscript
}
常用参数:
daily / weekly:轮换周期rotate N:保留个数compress:自动 gzipsize 100M:按大小压缩手动执行测试:
logrotate -d /etc/logrotate.conf # 测试
logrotate -f /etc/logrotate.conf # 强制执行
find /var/log -name "*.log" -mtime +7 -exec gzip {} \;
| 格式 | 压缩率 | 速度 |
|---|---|---|
| gzip | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| bzip2 | ⭐⭐⭐⭐ | ⭐⭐ |
| xz | ⭐⭐⭐⭐⭐ | ⭐ |
✅ 正在写入的日志:用 logrotate
✅ 历史日志归档:tar + xz
✅ 临时压缩:gzip -k
如果你能告诉我:
我可以直接给你可用的配置或命令。