在 Ubuntu 上清理 Node.js 日志,常见做法取决于日志是如何产生的。下面按常见场景给你一套完整方案,从“最安全”到“最彻底”。
PM2 默认把日志放在:
~/.pm2/logs/
查看:
ls -lh ~/.pm2/logs/
示例:
app-error.log
app-out.log
日志由 journald 管理:
journalctl -u your-node-service
日志通常在:
/var/lib/docker/containers/
或 stdout(不写文件)
例如:
/var/log/myapp/
logs/
pm2 flush
✅ 清空所有 PM2 日志
✅ 不删文件,只清内容
✅ 不影响服务运行
pm2 flush app-name
truncate -s 0 ~/.pm2/logs/app-out.log
truncate -s 0 ~/.pm2/logs/app-error.log
❗ 不要直接 rm,否则 PM2 可能继续写旧 inode
journalctl --disk-usage
sudo journalctl --vacuum-time=7d
或
sudo journalctl --vacuum-size=500M
sudo truncate -s 0 /var/log/myapp/app.log
rm /var/log/myapp/app.log
⚠️ 如果程序仍在运行,可能继续占用磁盘
pm2 install pm2-logrotate
常见配置:
pm2 set pm2-logrotate:max_size 10M
pm2 set pm2-logrotate:retain 7
pm2 set pm2-logrotate:compress true
✅ 自动按大小切割
✅ 自动删除旧日志
使用日志库(如 winston / pino):
df -h
sudo find / -type f -name "*.log" -size +100M
tail -f ~/.pm2/logs/app-out.log
你可以直接告诉我:
1️⃣ 用的是什么启动方式?(PM2 / systemd / Docker / 直接 node)
2️⃣ Ubuntu 版本
3️⃣ 磁盘占用情况(df -h 输出)
我可以给你一条不重启、不翻车的清理命令 ✅