在 Debian 系统中,“JS 日志”通常指 Node.js 应用日志、前端构建日志 或 Web 服务器(如 Nginx)中涉及 JS 的日志。下面按常见场景给你一套安全、可操作的压缩方案。
/var/log/myapp/~/.pm2/logs/logs/app.log)/var/log/nginx/access.log/var/log/nginx/error.logjournalctl 管理的日志(不是文件)logrotate(最标准 ✅)sudo apt update
sudo apt install logrotate
示例:压缩 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)sudo logrotate -d /etc/logrotate.d/nodejs
gzip app.log
⚠️ 注意:压缩后文件会变成 app.log.gz,正在写入的日志可能中断
cp app.log app.log.bak
> app.log
gzip app.log.bak
pm2 install pm2-logrotate
pm2 set pm2-logrotate:compress true
pm2 set pm2-logrotate:max_size 10M
pm2 set pm2-logrotate:retain 7
✅ PM2 会自动 gzip 旧日志
sudo nano /etc/logrotate.d/nginx
示例:
/var/log/nginx/*.log {
daily
rotate 14
compress
delaycompress
missingok
notifempty
postrotate
systemctl reload nginx
endscript
}
不能直接 gzip,但可以限制大小:
sudo journalctl --vacuum-size=200M
或永久限制:
sudo nano /etc/systemd/journald.conf
SystemMaxUse=200M
sudo systemctl restart systemd-journald
| 方法 | 是否自动 | 是否安全 | 推荐度 |
|---|---|---|---|
| logrotate | ✅ | ✅ | ⭐⭐⭐⭐⭐ |
| PM2 logrotate | ✅ | ✅ | ⭐⭐⭐⭐⭐ |
| 手动 gzip | ❌ | ⚠️ | ⭐⭐ |
| journalctl | ✅ | ✅ | ⭐⭐⭐⭐ |
logrotatepm2-logrotatecp + > + gzipjournalctl --vacuum如果你愿意,可以把:
发给我,我可以给你精确的一行配置 ✅