温馨提示×

ubuntu如何清理nodejs日志

小樊
43
2026-09-24 19:51:30
栏目: 编程语言

在 Ubuntu 上“清理 Node.js 日志”通常取决于日志是写在哪里、由谁产生的。下面按常见场景给你一套实用做法。


一、先确认日志在哪里

1. 应用自己写的日志

常见位置:

/var/log/your-app/
~/your-app/logs/
./logs/

查看:

du -sh /var/log/your-app
ls -lh /var/log/your-app

2. 使用 PM2 管理的 Node.js

PM2 默认日志在:

~/.pm2/logs/

查看:

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

3. 使用 systemd 管理的 Node 服务

日志由 journald 管理:

journalctl -u your-node-service

二、清理方式(按需选择)

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

sudo rm -f /var/log/your-app/*.log

或 PM2:

pm2 flush

pm2 flush 会清空所有 PM2 日志


✅ 方式 2:清空日志但保留文件(推荐)

避免程序因文件被删而写不进去:

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

PM2:

pm2 flush

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

查看占用:

journalctl --disk-usage

清理:

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

✅ 方式 4:配置日志轮转(一劳永逸)

用 logrotate(推荐)

新建配置:

sudo nano /etc/logrotate.d/node-app

示例:

/var/log/your-app/*.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    copytruncate
}

测试:

sudo logrotate -d /etc/logrotate.d/node-app

三、根本解决:减少日志量

如果是你自己的 Node 项目:

  • 使用 winston / pino
  • 设置日志级别(production 用 infowarn
  • 不要在生产环境 console.log

四、快速总结

场景 清理命令
PM2 pm2 flush
systemd journalctl --vacuum-time=7d
自定义日志 truncate -s 0 file.log
长期方案 logrotate

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

  • Node 是怎么运行的(PM2 / systemd / docker / 直接 node)
  • 日志路径或截图

我可以给你精确命令

0