多语言展示
当前在线:1914今日阅读:176今日分享:34

提示'No space left on device'错误的解决方法

inode在linux中,每个文件,不管大小是多少都会对应一个inode,inode就是一个专门用来保存文件属性,权限和指针。在linux中,有两个概念,就是block和inode,block:用于存放实际数据inode:存放文件属性,只要这两个其中一个占满空间了,都会导致提示报错'No space left on device'磁盘空间不足,那么应该怎么解决?本文idcspy.com简单的说说。
方法/步骤
1

系统:centos 7.4,磁盘空间8G,CPU 4核,内存4G(最好给大点,创建文件需要大内存)。[root@appjzw ~]# mkdir /test[root@appjzw ~]# echo /test/{1..6000000}.txt |xargs touch #创建的文件太多了,只能用这种方式创建。

2

[root@appjzw ~]# crontab -e/tmp/crontab.MApBTV: No space left on device [root@appjzw ~]# touch xmh.txttouch: cannot touch ‘xmh.txt’: No space left on device

3

查看磁盘空间[root@appjzw ~]# df -hFilesystem      Size  Used Avail Use% Mounted on/dev/sda1       8.0G  3.2G  4.9G  39% /      ##可以发现磁盘容量是空闲很多的devtmpfs        1.7G     0  1.7G   0% /devtmpfs           1.7G     0  1.7G   0% /dev/shmtmpfs           1.7G  8.7M  1.7G   1% /runtmpfs           1.7G     0  1.7G   0% /sys/fs/cgrouptmpfs           332M     0  332M   0% /run/user/0

4

[root@appjzw ~]# df -iFilesystem      Inodes   IUsed  IFree IUse% Mounted on/dev/sda1      4193792 4193792      0  100% /       #但是inode空间已满了devtmpfs        422466     395 422071    1% /devtmpfs           424923       1 424922    1% /dev/shmtmpfs           424923     473 424450    1% /runtmpfs           424923      16 424907    1% /sys/fs/cgrouptmpfs           424923       1 424922    1% /run/user/0

5

解决办法 使用find命令查找大于10M的目录,可以从df -i看出是在 根 /下容量不足,那么我们就从 / 下开始排查。[root@appjzw ~]# find / -type d  -size +10M |xargs  ls -lhd  #find查找drwxr-xr-x. 2 root root 97M Feb 15 14:00 /test[root@appjzw ~]# ls /test/ |wc -l  #对该目录文件数量统计 4168011#定位好目录后删除小文件[root@appjzw /]# rm -rf /test/*  #直接 rm -rf * 的话是删除不了大量的小文件-bash: /usr/bin/rm: Argument list too long [root@appjzw /]# cd /test/[root@appjzw test]# ls |xargs rm -f#删除大量的小文件,使用该命令删除[root@appjzw /]# ls /test/ |wc -l #小文件已经删除

推荐信息