温馨提示×

如何清理ubuntu nohup日志

小樊
35
2026-10-15 12:39:56
栏目: 智能运维

在 Ubuntu 中,使用 nohup 运行程序时,默认会把输出写入到当前目录的 nohup.out 文件(或你重定向到的日志文件)。随着时间推移,这个日志可能会变得很大,需要清理或管理。

下面是几种常见且安全的清理方式。


一、直接清空日志文件(推荐)

1️⃣ 清空 nohup.out(不删除文件)

> nohup.out

或

: > nohup.out

✅ 优点:

  • 文件还在
  • 正在运行的程序不会受影响
  • 不会中断进程

⚠️ 不要直接 rm nohup.out,否则程序可能继续往已删除的文件写,导致磁盘空间不释放。


二、如果日志是重定向的(如 app.log)

假设你启动命令是:

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

清理方式:

> app.log

三、使用 logrotate(长期方案,强烈推荐)

适合长期运行的服务。

示例:为 nohup 日志配置 logrotate

创建配置文件:

sudo vim /etc/logrotate.d/myapp

内容示例:

/path/to/nohup.out {
    size 100M
    rotate 5
    compress
    missingok
    notifempty
    copytruncate
}

说明:

  • size 100M:日志超过 100M 才轮转
  • rotate 5:保留 5 个旧日志
  • compress:压缩旧日志
  • copytruncate:复制后清空原文件(不中断进程)

立即测试:

sudo logrotate -f /etc/logrotate.d/myapp

四、重启进程后清理(不推荐但有场景)

如果你可以重启程序:

# 先结束进程
kill <pid>

# 删除或清空日志
rm nohup.out

# 重新启动
nohup python app.py > nohup.out 2>&1 &

五、查找大日志文件(辅助)

du -sh nohup.out

或查找大文件:

find / -name "nohup.out" -size +100M 2>/dev/null

✅ 推荐做法总结

场景 推荐方式
临时清理 > nohup.out
长期运行服务 logrotate + copytruncate
可重启程序 重启 + 清空日志

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

  • 你的 启动命令
  • 日志路径
  • 是否是服务 / 脚本 / web 程序

我可以帮你写一份专属清理方案。

0 踩