cd -bash: 无法为立即文档创建临时文件: 设备上没有空间;磁盘爆满;inode爆满;

场景描述:

       在项目运行一段时间后,服务器上的JavaWeb项目突然无法使用,使用终端操作Linux时,出现如下报错信息“cd -bash: 无法为立即文档创建临时文件: 设备上没有空间”,网上有人说重启服务器,这种方式太暴力了,我都不知道服务器其他同事都有什么程序或者是什么服务,我直接重启可能不太合适吧,更要命的是。好多人在那胡乱扯,一会这个命令一会那个命令的,讲的乱七八糟,你讲就讲了,讲到一半最后来一句删除无用的文件,我特么哪知道哪个目录下的哪些文件能删?想骗我删库跑路?而且,如果要删除日志文件,请看最后的【后期补充

解释:

      df -h与df -i的区别(参考地址:https://www.cnblogs.com/jxhd1/p/6700300.html

(​“df -h”显示目前磁盘空间和使用情况。 “df -i” 以inode模式来显示磁盘使用情况。)

      理解inode(参考地址:http://www.ruanyifeng.com/blog/2011/12/inode.html

解决inode爆满办法:(参考地址:https://blog.csdn.net/xiaobei4929/article/details/45822325

  [root@/]# lsof |grep delete

  根据lsof列出的进程号,kill这些进程后,空间就释放出来了

原因:

       有文件被删除,而进程还活着,因而造成还占用空间的现象

以上解决办法从linux命令查看到,df -i 的某项占用在逐渐变少。(但是后来该种方法无效果了,且继续看)

解决磁盘爆满办法

       从图上可以看到,50G被占满,当前目录下使用命令“du -h -x --max-depth=1”(查看当前目录层级以K、M、G为单位显示其大小)查看哪个目录占用过高

      (该命令参考讲解地址:http://www.cnblogs.com/iconfig/p/4863063.html

       可以看到usr和var占用较多,先到usr下查看

       usr下继续使用该命令,可以看到local下文件较多,按照该步骤继续查看

       最后定位到tomcat的日志文件较大,删除tomcat的日志,查看磁盘使用情况

        已经释放一部分空间,按照如上步骤删除没用的文件即可

清理后情况:

意外惊喜:

       当删除日志文件后,发现inode也被释放了

-----------------------------------------------------------------------------------------------

后期补充:

       删除日志文件后一段时间,发现CDH集群还是一直无法使用,用“lsof |grep delete”命令,直接先卡住,然后出来一大堆被删除的找不到资源的进程。所以用上面的方法是有问题的,我是直接重启了,一大堆找不到资源的问题就没了。

       网上看到别人使用下面的方法来清日志,不过我还没试,等再出现这个情况我在试验,我想的是如果日志文件很多,那操作起来就比较麻烦了,不可能一个个的用下面的指令来操作。

$ : > filename 
$ > filename 
$ echo "" > filename 
$ echo > filename

 

  • 9
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值