温馨提示×

linux nohup日志如何清空

小樊
44
2026-09-09 12:22:49
栏目: 智能运维

在 Linux 中,如果你用 nohup 启动程序(例如 nohup ./app > app.log 2>&1 &),日志文件会不断增大。清空日志的方法有多种,关键是不要直接删除日志文件(否则程序可能仍然写入已删除的 inode,导致磁盘空间不释放)。

以下是几种常用、安全的清空方式:


方法一:使用 > 重定向清空(最常用)

> app.log

: > app.log

这会把文件大小截断为 0,但保留文件本身和 inode,程序仍能继续写入。


方法二:使用 truncate 命令

truncate -s 0 app.log

-s 0 表示把文件大小设为 0。


方法三:使用 cat /dev/null

cat /dev/null > app.log

方法四:如果程序支持日志轮转(推荐)

  • 使用 logrotate
  • 或使用支持 SIGUSR1 / SIGUSR2 重新打开日志的程序(如 Nginx)

例如:

kill -USR1 <pid>

❌ 不推荐的做法

rm app.log

如果程序还在运行,它仍会写入原来的 inode,磁盘空间不会释放,直到进程退出。


小提示:自动化清空

可以配合 crontab 定期清空或轮转日志:

0 0 * * * truncate -s 0 /path/app.log

如果你愿意,可以告诉我你运行的是什么程序(Java / Python / C++ 等),我可以给你更合适的日志管理方案。

0