温馨提示×

Ubuntu Nodejs日志怎么清理

小樊
40
2026-08-20 11:33:30
栏目: 编程语言

在 Ubuntu 上清理 Node.js 日志,要分几种常见场景来处理。下面按最常用 → 进阶给你一个完整方案。


一、Node.js 应用自身产生的日志

1️⃣ 手动清理日志文件(最直接)

假设你的日志在:

/var/log/myapp/

或项目目录:

~/project/logs/

查看日志大小:

du -sh logs/

删除旧日志:

rm -f logs/*.log

⚠️ 注意:如果 Node 进程仍在运行,直接 rm 可能会导致:

  • 磁盘空间不释放
  • 新日志无法写入

推荐方式(安全):

: > logs/app.log

或:

truncate -s 0 logs/app.log

2️⃣ 使用 PM2 管理 Node.js(最常见)

查看日志:

pm2 logs

清空所有 PM2 日志:

pm2 flush

清空指定应用日志:

pm2 flush app_name

推荐,不会中断服务。


二、系统日志(不是 Node 本身)

Ubuntu 常见系统日志位置:

/var/log/

如:

/var/log/syslog
/var/log/kern.log

查看占用:

du -sh /var/log/*

清理系统日志(安全):

sudo journalctl --vacuum-time=7d

保留最近 7 天。

或按大小:

sudo journalctl --vacuum-size=100M

三、Node.js 日志自动轮转(强烈推荐)

使用 logrotate(生产必配)

示例配置:

sudo vim /etc/logrotate.d/nodeapp
/var/log/myapp/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    copytruncate
}

✅ 每天轮转
✅ 保留 7 天
✅ 自动压缩
✅ 不中断 Node 进程


四、Docker 中的 Node.js 日志

清理 Docker 日志:

docker system prune -f

限制容器日志大小(推荐)

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "50m",
    "max-file": "3"
  }
}

五、Nginx / 反向代理日志(如果你用了)

sudo truncate -s 0 /var/log/nginx/access.log
sudo truncate -s 0 /var/log/nginx/error.log

六、推荐清理策略(总结)

开发环境

  • pm2 flush
  • 手动 truncate

生产环境

  • logrotate
  • journalctl --vacuum-time
  • 不随便 rm

Docker

  • 限制日志大小
  • 定期 prune

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

  • ✅ 是否使用 PM2 / Docker / systemd
  • ✅ 日志路径
  • ✅ Ubuntu 版本

我可以给你定制一套日志清理方案

0