在 Ubuntu 中,使用 nohup 运行程序时,默认会把输出写入到当前目录的 nohup.out 文件(或你重定向到的日志文件)。随着时间推移,这个日志可能会变得很大,需要清理或管理。
下面是几种常见且安全的清理方式。
> nohup.out
或
: > nohup.out
✅ 优点:
⚠️ 不要直接 rm nohup.out,否则程序可能继续往已删除的文件写,导致磁盘空间不释放。
假设你启动命令是:
nohup python app.py > app.log 2>&1 &
清理方式:
> app.log
适合长期运行的服务。
创建配置文件:
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 |
| 可重启程序 | 重启 + 清空日志 |
如果你愿意,可以告诉我:
我可以帮你写一份专属清理方案。