温馨提示×

linux下如何压缩日志文件

小樊
51
2026-10-20 04:47:27
栏目: 智能运维

在 Linux 下压缩日志文件常见、实用的方法如下,按使用频率和场景给你总结:


一、常用压缩命令

1️⃣ gzip(最常用)

gzip access.log
  • 生成:access.log.gz
  • 原文件会被删除
  • 解压:
gunzip access.log.gz
# 或
gzip -d access.log.gz

✅ 适合:单个日志文件


2️⃣ bzip2(压缩率更高,速度慢)

bzip2 access.log
  • 生成:access.log.bz2
  • 解压:
bunzip2 access.log.bz2

3️⃣ xz(压缩率最高)

xz access.log
  • 生成:access.log.xz
  • 解压:
unxz access.log.xz

4️⃣ tar 打包 + 压缩(多个日志)

tar -czf logs.tar.gz /var/log/nginx/
tar -cjf logs.tar.bz2 /var/log/nginx/
tar -cJf logs.tar.xz /var/log/nginx/

解压:

tar -xzf logs.tar.gz

✅ 适合:目录 / 多个日志文件


二、日志压缩实战示例

✅ 压缩旧日志(保留原文件)

gzip -k access.log

✅ 压缩并删除原文件(默认)

gzip access.log

✅ 批量压缩日志

gzip /var/log/nginx/*.log

三、日志管理(推荐做法)

✅ logrotate(生产环境标准方案)

配置文件示例:

/var/log/nginx/*.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
}

常用命令:

logrotate -d /etc/logrotate.conf   # 测试
logrotate -f /etc/logrotate.conf   # 强制执行

✅ 自动:

  • 切割
  • 压缩
  • 删除旧日志

四、查看压缩日志(不用解压)

zcat access.log.gz
zless access.log.gz
zgrep "ERROR" access.log.gz

五、选择建议

场景 推荐
单文件 gzip
高压缩率 xz
多文件/目录 tar + gzip
生产环境 logrotate

如果你有具体日志路径、系统(CentOS / Ubuntu)或想做自动清理,我可以给你现成脚本。

0 踩