温馨提示×

Debian Nodejs日志如何清理

小樊
33
2026-08-23 19:59:33
栏目: 编程语言

在 Debian 系统上清理 Node.js 日志,通常取决于日志是哪里产生的(应用自身、PM2、systemd、Nginx 等)。下面按常见场景说明。


一、Node.js 应用自身日志

1️⃣ 找到日志文件

常见位置:

/var/log/myapp/
/home/user/myapp/logs/

查看占用空间:

du -sh /var/log/myapp

2️⃣ 手动清理(不推荐直接 rm)

> app.log        # 清空文件(推荐)
# 或
truncate -s 0 app.log

不要直接 rm app.log
如果 Node.js 进程仍持有文件句柄,磁盘空间不会释放。


3️⃣ 使用 logrotate(强烈推荐)

创建配置:

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 管理的 Node.js 日志

1️⃣ 查看 PM2 日志位置

pm2 logs
pm2 list

默认位置:

~/.pm2/logs/

2️⃣ PM2 自动清理(推荐)

pm2 install pm2-logrotate

配置:

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

3️⃣ 手动清理

pm2 flush        # 清空所有日志
pm2 logs --lines 0

三、systemd 管理的 Node.js 服务

1️⃣ 查看日志

journalctl -u your-node-service

2️⃣ 清理 systemd 日志

sudo journalctl --vacuum-time=7d
sudo journalctl --vacuum-size=500M

四、Docker 中的 Node.js 日志

查看日志

docker logs <container_id>

清理 Docker 日志

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 + 文件 + 轮转
✅ 定期监控磁盘空间


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

  • Node.js 是如何运行的(PM2 / systemd / Docker)
  • 日志路径或日志库(Winston / Pino)

我可以给你更精确的清理方案

0