在 CentOS 下,使用 nohup 启动程序时通常会把输出重定向到 nohup.out 或自定义日志文件。清理这些日志有几种常见方式,取决于你是否需要保留日志内容。
不会删除文件,只是清空内容,程序可继续写入
> nohup.out
或
cat /dev/null > nohup.out
如果是自定义日志,例如 app.log:
> app.log
✅ 优点:
truncate -s 0 nohup.out
-s 0 表示把文件大小截断为 0find / -name "nohup.out" -size +100M -exec truncate -s 0 {} \;
清理大于 100M 的 nohup.out
rm -f nohup.out
⚠️ 注意:
如果已经 rm 了但磁盘没释放:
lsof | grep deleted
找到对应进程后:
nohup java -jar app.jar > app.log 2>&1 &
示例 /etc/logrotate.d/app:
/opt/app/app.log {
size 100M
rotate 5
compress
missingok
notifempty
copytruncate
}
copytruncate 可避免重启进程。
✅ 清空不删除:
> nohup.out
或
truncate -s 0 nohup.out
如果你愿意,可以告诉我:
我可以给你更精确的命令。