在 Debian 系统中清理 JavaScript(JS)日志,需要先明确日志的来源和位置,因为 JS 本身不生成日志,通常是运行环境或应用在记录。下面按常见场景给你一套完整、实用的清理方法。
| 场景 | 日志位置 |
|---|---|
| Node.js 应用 | /var/log/、logs/、pm2 logs |
| Nginx 转发 JS 请求 | /var/log/nginx/ |
| PM2 管理 Node | ~/.pm2/logs/ |
| Docker 中的 JS 应用 | docker logs |
| Systemd 服务 | journalctl |
find / -name "*.log" 2>/dev/null | grep -E "node|js"
常见目录:
/var/log/node/
/var/log/myapp/
~/myapp/logs/
# 清空日志(推荐)
truncate -s 0 /path/to/app.log
# 或删除
rm -f /path/to/app.log
⚠️ 不建议直接 rm,如果程序仍占用文件,空间不会释放。
# 查看日志路径
pm2 logs
# 清空所有 PM2 日志
pm2 flush
# 删除旧日志
pm2 flush && pm2 restart all
如果 JS 请求通过 Nginx:
# 访问日志
/var/log/nginx/access.log
# 错误日志
/var/log/nginx/error.log
truncate -s 0 /var/log/nginx/access.log
truncate -s 0 /var/log/nginx/error.log
或配置日志轮转(推荐):
apt install logrotate
如果 Node.js 作为 systemd 服务运行:
journalctl -u your-js-service.service
# 查看占用
journalctl --disk-usage
# 清理 7 天前
journalctl --vacuum-time=7d
# 限制大小
journalctl --vacuum-size=100M
# 查看日志
docker logs <container_id>
# 清理(删除容器日志)
truncate -s 0 /var/lib/docker/containers/*/*-json.log
⚠️ 生产环境建议配置 Docker 日志驱动:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
/etc/logrotate.d/node-app
示例:
/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 www-data www-data
}
✅ 使用日志库:
winstonpino并配置:
ls -lh /var/log/
du -sh /var/log/*
或:
lsof | grep deleted
你可以直接告诉我:
我可以给你一条命令直接解决 ✅