在 Debian 系统上清理 Node.js 日志,通常取决于日志是哪里产生的(应用自身、PM2、systemd、Nginx 等)。下面按常见场景说明。
常见位置:
/var/log/myapp/
/home/user/myapp/logs/
查看占用空间:
du -sh /var/log/myapp
> app.log # 清空文件(推荐)
# 或
truncate -s 0 app.log
⚠ 不要直接 rm app.log:
如果 Node.js 进程仍持有文件句柄,磁盘空间不会释放。
创建配置:
sudo nano /etc/logrotate.d/node-app
示例:
/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
生效测试:
sudo logrotate -d /etc/logrotate.d/node-app
pm2 logs
pm2 list
默认位置:
~/.pm2/logs/
pm2 install pm2-logrotate
配置:
pm2 set pm2-logrotate:max_size 10M
pm2 set pm2-logrotate:retain 7
pm2 set pm2-logrotate:compress true
pm2 flush # 清空所有日志
pm2 logs --lines 0
journalctl -u your-node-service
sudo journalctl --vacuum-time=7d
sudo journalctl --vacuum-size=500M
docker logs <container_id>
truncate -s 0 /var/lib/docker/containers/*/*-json.log
(建议配置 Docker log driver)
sudo find / -type f -name "*.log" -size +100M
✅ 使用 日志轮转(logrotate / pm2-logrotate)
✅ 不要 rm 正在写入的日志
✅ 生产环境结合 Winston / Pino + 文件 + 轮转
✅ 定期监控磁盘空间
如果你愿意,可以告诉我:
我可以给你更精确的清理方案。