温馨提示×

如何压缩linux js日志备份

小樊
34
2026-09-29 17:13:53
栏目: 编程语言

在 Linux 下压缩 JavaScript(或任意文本)日志备份,常见做法有 命令行手动/脚本压缩、logrotate 自动管理、以及前端/Node 应用内压缩。下面按使用场景给你一套实用方案。


一、命令行直接压缩(最常用)

1. 使用 gzip(最快、最通用)

gzip app.2024-01-01.log
# 生成 app.2024-01-01.log.gz

批量压缩某天日志:

gzip access-*.log

2. 使用 xz(压缩率最高)

xz app.log
# 生成 app.log.xz

3. 使用 zstd(推荐,压缩快+率高)

zstd app.log
# 生成 app.log.zst

二、tar 打包多个日志再压缩(适合备份)

tar -czf logs-$(date +%F).tar.gz /var/log/js-app/*.log

使用 zstd:

tar -cf logs.tar --zstd /var/log/js-app/

三、用 logrotate 自动压缩(生产环境推荐)

示例配置 /etc/logrotate.d/js-app

/var/log/js-app/*.log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
    copytruncate
}

说明:

  • compress:默认用 gzip
  • delaycompress:避免当天日志被压
  • copytruncate:不重启 Node 进程

测试:

logrotate -d /etc/logrotate.d/js-app

四、Node.js 应用内压缩(代码层)

使用 zlib

const zlib = require('zlib');
const fs = require('fs');

const input = fs.createReadStream('app.log');
const output = fs.createWriteStream('app.log.gz');
input.pipe(zlib.createGzip()).pipe(output);

五、压缩率与速度对比(经验值)

工具 速度 压缩率 场景
gzip 快 中 通用
xz 慢 高 归档
zstd 很快 高 推荐

六、实用建议

  • 日志先 按天切割 再压缩
  • 保留 30–90 天
  • 冷数据用 xz
  • 热备份用 zstd

如果你愿意,可以告诉我:

  • 日志路径
  • 是否 Node 服务
  • 是否容器环境

我可以帮你写 完整备份脚本或 Docker 方案。

0 踩