在 Linux 上清理 JS(Node.js / 前端构建等)产生的日志,常见做法按「场景」来分,下面给你一套实用方案。
logs/、/var/log/xxx/~/.pm2/logs//var/log/nginx/docker logs/var/log/# 进入日志目录
cd /path/to/js/logs
# 删除 .log 文件
rm -f *.log
⚠️ 如果程序正在写日志,直接删可能导致:
# 清空内容但保留文件
> app.log
# 或
truncate -s 0 app.log
适合正在运行的服务。
编辑配置:
sudo vim /etc/logrotate.d/nodejs
内容示例:
/var/www/myapp/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
生效测试:
sudo logrotate -d /etc/logrotate.d/nodejs
sudo logrotate -f /etc/logrotate.d/nodejs
✅ copytruncate 适合不能重启的 Node 服务
pm2 logs --clear
或:
rm -rf ~/.pm2/logs/*
pm2 reload all
# 查看日志占用
docker system df
# 清理无用日志
docker system prune
限制日志大小(推荐):
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
find /path/to/logs -name "*.log" -mtime +7 -delete
可加到 crontab:
0 3 * * * find /path/to/logs -name "*.log" -mtime +7 -delete
一般不持久化,只需:
rm -rf node_modules/.cache
rm -rf dist
| 场景 | 推荐方式 |
|---|---|
| 正在运行 | > log / logrotate |
| 生产环境 | logrotate ✅ |
| Docker | 限制日志大小 |
| 临时清理 | rm / find |
如果你是 某个具体框架(Next.js / Nuxt / Express / PM2),可以告诉我,我给你更精准的命令。