温馨提示×

怎样清理nohup日志

小樊
46
2026-09-24 19:31:28
栏目: 编程语言

nohup 命令通常会把输出重定向到当前目录下的 nohup.out 文件(或者你自己指定的日志文件)。随着程序长期运行,这个文件会越来越大,需要清理或控制大小。

下面是几种安全、常用的清理方式:


一、最推荐:清空日志文件(不删除文件)

如果你用的是:

nohup your_command > nohup.out &

✅ 安全清空(推荐):

: > nohup.out

或

truncate -s 0 nohup.out

✅ 优点:

  • 不中断程序
  • 不删除文件
  • 程序还能继续写日志

⚠️ 不要用 rm nohup.out,否则程序还在运行但日志写不进去了。


二、如果是自己重定向的日志文件

例如:

nohup your_command > app.log 2>&1 &

清空方式一样:

> app.log

或

truncate -s 0 app.log

三、不想手动清?用 logrotate(生产推荐)

logrotate 可以自动轮转、压缩、清理日志。

示例 /etc/logrotate.d/myapp:

/opt/myapp/nohup.out {
    size 100M
    rotate 5
    compress
    missingok
    notifempty
    copytruncate
}

✅ copytruncate 很关键:

  • 复制原日志
  • 然后清空原文件
  • 不重启程序

四、从源头减少日志(推荐)

1. 只保留错误日志

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

2. 完全不要输出

nohup your_command > /dev/null 2>&1 &

五、查看当前 nohup 日志大小

ls -lh nohup.out
du -h nohup.out

总结(一句话)

清空 nohup 日志用 > nohup.out,千万别 rm,长期运行用 logrotate。

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

  • 日志路径
  • 是否生产环境
  • 是否 Java / Python / Node 程序

我可以帮你写一套最合适的日志方案。

0 踩