在 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/nullcat /dev/null > app.log
logrotateSIGUSR1 / SIGUSR2 重新打开日志的程序(如 Nginx)例如:
kill -USR1 <pid>
rm app.log
如果程序还在运行,它仍会写入原来的 inode,磁盘空间不会释放,直到进程退出。
可以配合 crontab 定期清空或轮转日志:
0 0 * * * truncate -s 0 /path/app.log
如果你愿意,可以告诉我你运行的是什么程序(Java / Python / C++ 等),我可以给你更合适的日志管理方案。