分享

释放nohup.out占用的磁盘空间

 Enzoleung 2020-04-08
使用nohup启动的进程,会把所有标准输出的打印信息记录到nohup.out文件中。
如果进程长时间不结束,打印信息又多,nohup.out文件就会一直增长,直至磁盘爆满
此时,如果去rm nohup.out文件不会起效,因为进程open了文件,rm后,要进程退出才会close文件,才会真正释放磁盘空间
可以用lsof|grep delete来查询被rm但空间没有释放的文件
因此,要清理nohup.out文件占用的磁盘空间,不应该去rm文件,而应该清空文件内容,即

echo "" > nohup.out

使用nohup ... & 命令启动服务器后,磁盘满了,服务宕了,然后一步一步排查是哪个文件过大,最终定位到是nohup.out文件过大,占了40G,

  df -lh #磁盘容量命令 

  du -sh #查看当前文件夹大小

  du -sh * #查看当前文件夹下所有文件/文件夹大小,当磁盘满了可以从根目录使用该命令一路排查下去,最终定位到最大的文件

  另外来说说nohup的问题,都知道nohup可以后台启动服务并且输出日志,问题是不加控制nohup是无限制的输出日志,硬盘占满是早晚的事,笔者百度了一下可以通过以下方式解决

  不生成nohup文件:

     nohup ./a.sh >/dev/null 2>&1 &  

  关键在于最后的 >/dev/null 2>&1 部分,/dev/null是一个虚拟的空设备(类似物理中的黑洞),任何输出信息被重定向到该设备后,将会石沉大海

  >/dev/null 表示将标准输出信息重定向到"黑洞"

  2>&1 表示将标准错误重定向到标准输出(由于标准输出已经定向到“黑洞”了,即:标准输出此时也是"黑洞",再将标准错误输出定向到标准输出,相当于错误输出也被定向至“黑洞”)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多