压缩 nohup 产生的日志文件(通常是 nohup.out)时,一定要小心,不要直接覆盖正在写入的文件。下面给你几种安全、常用的做法,从简单到推荐。
适合:日志已经很大,想保留历史内容,同时让程序继续写日志
# 1. 把当前 nohup.out 内容压缩保存
tar -czf nohup_$(date +%F).tar.gz nohup.out
# 2. 清空原文件(不会中断程序)
: > nohup.out
✅ 优点
cp nohup.out nohup_$(date +%F).log
: > nohup.out
gzip nohup_$(date +%F).log
✅ 适合对 tar 不熟悉的人
✅ 和上面效果一样
如果你长期运行程序,这是最专业的方式。
/your/path/nohup.out {
daily
rotate 7
compress
copytruncate
missingok
}
copytruncate:复制后清空原文件(不中断程序)compress:自动 gziprotate 7:保留 7 份✅ 一劳永逸
✅ 不需要手动处理
gzip nohup.out
❌ 会导致:
du -h nohup.out
| 场景 | 推荐方式 |
|---|---|
| 临时处理 | tar -czf + : > nohup.out |
| 长期运行 | logrotate |
| 新手 | cp + gzip |
如果你愿意,可以把你的系统(CentOS / Ubuntu)和程序运行方式发我,我可以帮你写一份完整的 logrotate 配置。