温馨提示×

怎样压缩nohup日志文件

小樊
53
2026-09-27 16:40:17
栏目: 编程语言

nohup 命令默认会把输出写入 nohup.out(或你重定向到的日志文件),时间久了会很大。压缩日志一般分 “直接压缩” 和 “滚动压缩(推荐)” 两种方式。


一、直接压缩(简单但不推荐长期用)

适合临时处理:

# 先停掉程序(或确认不再写入)
gzip nohup.out
# 生成 nohup.out.gz

⚠️ 注意:

  • 压缩时程序不能继续写原文件
  • 程序重启后还会新建 nohup.out

二、用 logrotate(最推荐 ✅)

系统自带工具,自动压缩、切割、清理。

示例配置

新建文件:

sudo vi /etc/logrotate.d/myapp

内容示例:

/path/to/nohup.out {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    copytruncate
}

说明:

  • daily:每天切
  • rotate 7:保留 7 份
  • compress:压缩
  • copytruncate:不重启程序也能截断日志 ✅

手动测试:

logrotate -d /etc/logrotate.d/myapp   # 模拟
logrotate -f /etc/logrotate.d/myapp   # 强制执行

三、启动时就控制日志(根本解决)

1️⃣ 重定向 + 按日期

nohup java -jar app.jar >> app_$(date +%F).log 2>&1 &

2️⃣ 用 split 切割

nohup java -jar app.jar | split -b 100m - app.log.

四、你如果想“现在立刻变小”

最安全做法:

cp nohup.out nohup.out.bak
> nohup.out
gzip nohup.out.bak

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

  • 用的什么程序(Java / Python / Shell)
  • 日志增长速度
  • 是否在容器中

我可以帮你写一套可直接用的方案。

0 踩