温馨提示×

nohup日志太大怎么办

小樊
54
2026-08-19 10:45:03
栏目: 编程语言

nohup.out 日志太大的问题很常见,可以从预防和补救两个角度来解决。下面按实用程度给你几种方案。


一、预防:从源头控制日志大小(推荐)

✅ 方案 1:重定向日志到指定文件(可按日期)

nohup java -jar app.jar > app-$(date +%Y%m%d).log 2>&1 &

或每天一个日志:

nohup ./start.sh > run.log 2>&1 &

✅ 方案 2:只保留错误日志(不推荐长期)

nohup ./app > /dev/null 2> error.log &

✅ 方案 3:stdout / stderr 都丢掉(慎用)

nohup ./app > /dev/null 2>&1 &

⚠️ 适合不需要排查问题的程序


二、解决:已经很大的 nohup.out 怎么办

✅ 方案 4:清空 nohup.out(不中断程序)✅ 最常用

: > nohup.out
# 或
truncate -s 0 nohup.out

✅ 程序不会中断,文件大小立即变小


✅ 方案 5:删除后重启(不推荐)

rm nohup.out
# 然后重启程序

⚠️ 删掉后如果程序还在运行,可能仍然占用磁盘空间(lsof 可看到)


三、长期方案:结合日志轮转(生产环境推荐)

✅ 方案 6:使用 logrotate(最专业)

示例 /etc/logrotate.d/myapp:

/path/to/nohup.out {
    daily
    rotate 7
    size 100M
    missingok
    notifempty
    copytruncate
}

✅ copytruncate 可避免重启程序


四、Java / Python 等程序建议

Java

nohup java -jar app.jar > /dev/null 2>&1 &

或使用日志框架(logback / log4j2)+ 滚动日志

Python

nohup python main.py > app.log 2>&1 &

五、快速决策表

场景 推荐方案
临时清理 : > nohup.out
新启动程序 重定向日志
生产环境 logrotate
不需要日志 /dev/null

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

  • 是 Java / Python / Shell?
  • 是 服务器还是容器?
  • 日志增长速度(一天多少 G)?

我可以帮你给出最合适的配置方案。

0 踩