温馨提示×

ubuntu nodejs日志怎样清理

小樊
42
2026-09-06 15:06:55
栏目: 编程语言

在 Ubuntu 上清理 Node.js 日志,通常取决于日志是写在哪里的、由谁管理。下面按常见情况给你说明。


一、先找到 Node.js 日志在哪

1. 应用自己写的日志

常见路径:

/var/log/xxx/
/home/user/app/logs/
./logs/

查看:

ls -lh /var/log/你的应用名
du -sh /var/log/你的应用名

2. 使用 PM2 管理的 Node.js

PM2 默认日志在:

~/.pm2/logs/

查看:

pm2 logs --lines 0
ls -lh ~/.pm2/logs/

3. 使用 systemd(推荐生产环境)

日志由 journalctl 管理:

journalctl -u your-node-service

二、清理方式(按场景)

✅ 方式 1:直接删除日志文件(简单粗暴)

sudo rm -f /var/log/yourapp/*.log

⚠️ 注意:不要删正在写入的日志文件但不重启进程,否则磁盘空间可能不会释放。

更安全:

sudo truncate -s 0 /var/log/yourapp/app.log

✅ 方式 2:PM2 日志清理

pm2 flush

会清空所有 PM2 日志。

或单独:

truncate -s 0 ~/.pm2/logs/app-out.log
truncate -s 0 ~/.pm2/logs/app-error.log

✅ 方式 3:systemd 日志清理(journal)

查看占用:

journalctl --disk-usage

清理:

sudo journalctl --vacuum-time=7d
# 或
sudo journalctl --vacuum-size=100M

三、避免日志无限增长(重要)

1. 使用 logrotate(推荐)

示例 /etc/logrotate.d/nodeapp:

/var/log/nodeapp/*.log {
  daily
  rotate 7
  compress
  missingok
  notifempty
  copytruncate
}

测试:

sudo logrotate -d /etc/logrotate.d/nodeapp

2. Node 应用内控制日志

  • 使用 winston / pino
  • 设置:
    • 文件大小限制
    • 日志轮转
    • 保留天数

四、快速判断你属于哪种情况

你可以告诉我:

  1. Node 是怎么启动的(pm2 / systemd / 直接 node)
  2. 日志路径在哪
  3. 是不是生产环境

我可以直接给你最适合你服务器的清理命令。

0 踩