Linux中出现“设备上没有剩余空间”错误的排查与解决方法

  

  

最近这两天登陆服务器,发现用wget下载文件的时候提示“没有剩余空间>   # df - h   文件系统大小使用效果使用%安装>   # du sh/*   8.8米/bin   30米/启动   0/dev   5.3米/等   24 k/家庭   0/initrd.img   205米/lib   4.0 k/lib64   16 k/损失+发现   8.0 k/媒体   4.0 k/mnt   4.0 k/选择   0/proc   2.5克/根   232 k/运行   5.2米/sbin   8.0 k/电脑   0/sys   4.0 k/tmp   2.6克/usr   1.8克/var   0/vmlinuz      

很明显,总共的磁盘占用完全不到10 g中,磁盘理论上并未被占满。

  

这种情况下,很可能是小文件过多,导致inode急剧增加,消耗完inode区域的空间。

  

如果真是如此,那么即使磁盘空间有剩余,但由于无法创建新的inode来存储文件的元信息,也就无法创建新文件。

  

        # df ih   文件系统索引节点师徒IFree我%安装>   # lsof | grep删除   mysqld mysql 5 u REG 254 1952 2982 127 0/tmp/ibzMEe4z(删除)   mysqld mysql 6 u REG 254, 1952 2982 146 0/tmp/ibq6ZFge(删除)   mysqld mysql 10 u REG 254 1952 2982 150 0/tmp/ibyNHH8y(删除)   输入2869根254 u REG, 1 0 168/tmp/.ZendSem。2 w14iv(删除)   输入2869根10 w REG 0, 16 0 11077/运行/锁定/输入/rewrite-map。2869(删除)   …   python 3102根1 w注册254,1 22412342132 264070/var/log/nohup.(删除)      

终于找到了罪魁祸首,原来是在后台运行Python脚的本,源源不断地将输出保存到/var/log/nohup.从文件中,文件大小居然达到了20 g + !

  

前阶段在后台运行脚本之后,就没再管过它。估计是我在Python运行过程中删掉了nothup。从文件,由于该文件被占用,所以只能先标记为删除,而未真正删除,最后导致磁盘爆满。

  

这次的教训提醒了我,不能将任务简单放到后台就放任不管,特别是使用nohup命令时,所有的输出都会被不断地添加到同一个文件中,如果该进程不会自己终止,就可能导致输出文件占满整个磁盘。

  

  

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

Linux中出现“设备上没有剩余空间”错误的排查与解决方法