温馨提示×

centos nohup日志怎样清理

小樊
44
2026-09-06 08:00:40
栏目: 智能运维

在 CentOS 里用 nohup 启动程序时,日志通常会写到 nohup.out 或你重定向的文件(如 xxx.log)。清理日志的核心原则是:不要直接删文件(可能导致程序继续写已删除的 inode,磁盘不释放),而是清空内容或做日志轮转。

下面按常见场景说明:


一、清空 nohup.out(最常用、最安全)

方法 1:重定向清空(推荐)

> nohup.out

: > nohup.out

✅ 不清空文件 inode,程序还能继续写


方法 2:truncate 命令

truncate -s 0 nohup.out

方法 3:cat / dev null

cat /dev/null > nohup.out

二、如果你用的是自定义日志文件

比如:

nohup java -jar app.jar > app.log 2>&1 &

清理方式一样:

> app.log
truncate -s 0 app.log

三、不要这样做(误区)

❌ 直接删除:

rm nohup.out

如果程序还在运行:

  • 磁盘空间不会马上释放
  • 日志会继续写到已删除文件
  • 只能通过重启进程解决

四、长期方案:日志轮转(推荐生产环境)

1️⃣ 用 logrotate(CentOS 自带)

示例 /etc/logrotate.d/myapp

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

说明:

  • copytruncate:拷贝后清空原文件(适合 nohup)
  • 不需要重启程序

2️⃣ 启动时就避免 nohup.out

nohup ./app.sh > /var/log/app.log 2>&1 &

五、快速判断日志占用

du -sh nohup.out
lsof | grep deleted

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

  • CentOS 几
  • 程序是 Java / Python / Shell
  • 日志是 nohup.out 还是自定义 log

我可以给你更精确的方案。

0