第1章 磁盘占满要考虑的2个方面
1.1 分为2种情况
1. block空间不足
2. inode存储空间不足了:出现了大量小文件
第2章 模拟环境
1.1 block磁盘空间不足
dd if=/dev/zero of=/mnt/1.txt bs=1000M count=100
从哪取出数据 放到哪 占用1个block多少空间 总共使用多少个block
[root@db01 mnt]# touch 2..txt
touch: cannot touch ‘2.txt’: No space left on device
查看磁盘空间大小
[root@db01 mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 49G 3.0G 46G 7% /
devtmpfs 983M 0 983M 0% /dev
tmpfs 993M 0 993M 0% /dev/shm
tmpfs 993M 8.6M 984M 1% /run
tmpfs 993M 0 993M 0% /sys/fs/cgroup
/dev/sda1 197M 98M 100M 50% /boot
tmpfs 199M 0 199M 0% /run/user/0
/dev/sdb 48M 48M 20K 100% /mnt
可以看到磁盘已经被全部使用完了,
[root@db01 mnt]# du -sh ./* |sort -h
找到那个大文件,要么删除,要么移到别的地方去
1.2 innode占满(小文件太多了)
[root@db01 mnt]# touch {1..30000}.txt
....
touch: cannot touch ‘30000.txt’: No space left on device
查看磁盘空间大小
[root@db01 mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 49G 3.0G 46G 7% /
devtmpfs 983M 0 983M 0% /dev
tmpfs 993M 0 993M 0% /dev/shm
tmpfs 993M 8.6M 984M 1% /run
tmpfs 993M 0 993M 0% /sys/fs/cgroup
/dev/sda1 197M 98M 100M 50% /boot
tmpfs 199M 0 199M 0% /run/user/0
/dev/sdb 48M 17M 32M 35% /mnt
可以看到磁盘才用了35%,所以肯定不是block满了,此时想到的就是是不是innode满了
[root@db01 mnt]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 25587200 61603 25525597 1% /
devtmpfs 251529 382 251147 1% /dev
tmpfs 253986 1 253985 1% /dev/shm
tmpfs 253986 461 253525 1% /run
tmpfs 253986 16 253970 1% /sys/fs/cgroup
/dev/sda1 102400 327 102073 1% /boot
tmpfs 253986 1 253985 1% /run/user/0
/dev/sdb 26112 26112 0 100% /mnt
可以看到innode已经占满了
此时,直接用rm -fr 删除这些小文件也会报错,提示删除的文件过多
解决办法:(找到小文件一点一点的删除)
find / -type f -size +800k|xargs -i rm -fr {}