在 Ubuntu 上清理 Node.js 日志,方法取决于日志是写在哪里的、由谁管理。下面按常见情况说明:
常见路径:
/var/log/your-app/
~/your-app/logs/
./logs/
查看占用情况:
du -sh /var/log/* 2>/dev/null
rm -f /var/log/your-app/*.log
如果是正在运行的进程:
# 不要直接 rm,先清空
> /var/log/your-app/app.log
Ubuntu 自带 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
sudo logrotate -f /etc/logrotate.d/node-app
Node.js 作为服务运行时,日志通常由 journald 管理。
journalctl -u your-node-service
sudo journalctl --vacuum-time=7d
# 或
sudo journalctl --vacuum-size=100M
sudo nano /etc/systemd/journald.conf
修改:
SystemMaxUse=200M
然后:
sudo systemctl restart systemd-journald
pm2 logs
pm2 flush
docker logs container_name
docker system prune
或限制日志大小(daemon.json):
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
✅ 不要手动 rm 正在写入的日志
✅ 使用 logrotate 或 journald
✅ 生产环境务必做日志轮转
如果你愿意,可以告诉我:
我可以给你精准的清理方案。