温馨提示×

怎样压缩Debian JS日志

小樊
36
2026-07-27 12:11:57
栏目: 编程语言

在 Debian 系统中,“JS 日志”通常指 Node.js 应用日志前端构建日志Web 服务器(如 Nginx)中涉及 JS 的日志。下面按常见场景给你一套安全、可操作的压缩方案


一、先确认日志位置(常见)

1. Node.js 应用日志

  • /var/log/myapp/
  • ~/.pm2/logs/
  • 应用自定义路径(如 logs/app.log

2. Nginx 日志(含 JS 请求)

  • /var/log/nginx/access.log
  • /var/log/nginx/error.log

3. 系统日志(journald)

  • journalctl 管理的日志(不是文件)

二、推荐方案:使用 logrotate(最标准 ✅)

1. 安装 logrotate(一般已安装)

sudo apt update
sudo apt install logrotate

2. 为 JS 日志创建配置

示例:压缩 Node.js 日志

sudo nano /etc/logrotate.d/nodejs

内容示例:

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

✅ 说明:

  • compress:使用 gzip 压缩
  • daily:每天轮转
  • rotate 7:保留 7 份
  • copytruncate:不重启服务即可截断日志(适合 Node)

3. 测试配置

sudo logrotate -d /etc/logrotate.d/nodejs

三、手动压缩已有大日志(应急)

1. 压缩单个日志

gzip app.log

⚠️ 注意:压缩后文件会变成 app.log.gz正在写入的日志可能中断


2. 安全方式(推荐)

cp app.log app.log.bak
> app.log
gzip app.log.bak

四、PM2 管理的 Node.js 日志

1. PM2 自带日志管理

pm2 install pm2-logrotate

2. 设置压缩与保留

pm2 set pm2-logrotate:compress true
pm2 set pm2-logrotate:max_size 10M
pm2 set pm2-logrotate:retain 7

✅ PM2 会自动 gzip 旧日志


五、Nginx JS 请求日志压缩

sudo nano /etc/logrotate.d/nginx

示例:

/var/log/nginx/*.log {
    daily
    rotate 14
    compress
    delaycompress
    missingok
    notifempty
    postrotate
        systemctl reload nginx
    endscript
}

六、如果是 journalctl(系统日志)

不能直接 gzip,但可以限制大小:

sudo journalctl --vacuum-size=200M

或永久限制:

sudo nano /etc/systemd/journald.conf
SystemMaxUse=200M
sudo systemctl restart systemd-journald

七、压缩效果对比

方法 是否自动 是否安全 推荐度
logrotate ⭐⭐⭐⭐⭐
PM2 logrotate ⭐⭐⭐⭐⭐
手动 gzip ⚠️ ⭐⭐
journalctl ⭐⭐⭐⭐

八、给你一个快速决策表

  • 生产环境logrotate
  • PM2 进程pm2-logrotate
  • 临时清理cp + > + gzip
  • 系统日志journalctl --vacuum

如果你愿意,可以把:

  • 日志路径
  • 使用 Node / Nginx / PM2
  • 日志大小

发给我,我可以给你精确的一行配置

0