温馨提示×

如何压缩linux归档日志

小樊
44
2026-09-29 14:15:44
栏目: 智能运维

在 Linux 下“压缩归档日志”通常分为 日志归档(打包) 和 日志压缩 两步,也可以一步完成。下面按常见场景给你说明。


一、最常用方式(tar + gzip)

1️⃣ 打包并压缩日志目录

tar -czf logs_$(date +%Y%m%d).tar.gz /var/log/app/

说明:

  • -c:创建归档
  • -z:用 gzip 压缩
  • -f:指定文件名
  • $(date +%Y%m%d):自动加日期

生成文件:

logs_20260121.tar.gz

2️⃣ 只压缩某类日志(如 .log)

tar -czf app_logs.tar.gz /var/log/app/*.log

二、解压归档日志

tar -xzf logs_20260121.tar.gz

三、更高压缩率(xzip / bzip2)

使用 bzip2

tar -cjf logs.tar.bz2 /var/log/app/

使用 xz(压缩率最高,速度慢)

tar -cJf logs.tar.xz /var/log/app/

四、直接压缩单个日志文件

gzip access.log

生成:

access.log.gz

解压:

gunzip access.log.gz

五、日志轮转(推荐生产环境)

使用 logrotate(自动归档+压缩)

示例配置 /etc/logrotate.d/app:

/var/log/app/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
}

功能:

  • 每天轮转
  • 保留 7 份
  • 自动 gzip 压缩

六、压缩已存在的旧日志(批量)

find /var/log/app -name "*.log" -mtime +7 -exec gzip {} \;

说明:压缩 7 天前的日志


七、查看压缩日志内容(不解压)

zcat logs.tar.gz
# 或
zless access.log.gz

如果你能告诉我:

  • 日志路径
  • 是否要自动化
  • 服务器是否有 disk 压力

我可以帮你写一个 可直接用的脚本或 logrotate 配置。

0 踩