磁盘空间不够了怎么办?No space left on device

首先先了解一下文件或目录属性

[root@web03 ~]# ls -lhi /etc/hosts
68328319 -rw-r--r-- 1 root root 158 Mar 16  2019 /etc/hosts

文件属性==ls -lhi 每一列的含义

68328319:inode号码----系统中唯一
-:这一列表示是文件还是目录-是文件d是目录
rw-r–r--:文件的权限
.(点):与selinux有关,当selinux关闭的时候它就不存在了
这个就是开启selinux的情况

[root@web03 ~]# ls -lhi /etc/hosts
68328319 -rw-r--r--. 1 root root 158 Mar 16  2019 /etc/hosts

1:文件硬链接数量
root:表示文件所有者或属组
root:表示文件的属主
158:表示该文件大小
Mar 16 2019:表示文件的修改时间
/etc/hosts:文件或者目录;注意文件名不是文件的属性。

inode和block简介

举个栗子:获取硬盘,再到向硬盘里存放数据。
硬盘(房子),分区(划分隔断),格式化创建文件系统(装修-不同风格),挂载(安装门窗)

inode
1)含义
用来存放文件属性的空间。通过inode号码找到这个空间的。
inode号码----家庭住址
inode空间----家庭
2)怎么来的
格式化创建文件系统
3)特点
1#inode存放文件属性
2#记录block的位置,指向block的指针说白了就是block在哪
3#创建一个文件要占用一个inode
4#inode节点号相同的文件,互为硬链接文件,可以认为是一个文件的不同入口。
硬链接数量====超市入口的数量
5#inode在某一个文件系统(分区),是唯一的。
4)怎么用/看
ls -i (看某些文件的inode号码)
df -i(系统里面inode用了多少剩余多少)
block
1)含义
数据块,实际存放数据的位置
2)怎么来的
格式化创建文件系统
3)特点
1#block是实际存放数据的位置
2#block 4k(centos.6.x)1k 8k block块的大小默认4k;inode也有大小为256字节
3#创建大文件会占用多个block,如果文件很小1k,4k剩余的空间会被浪费。
4#创建一个文件要占用一个inode和至少1个block
5#每读取一个block就会消耗一次磁盘I/O(input/output磁盘读写)
4)怎么用/怎么看
df -h(磁盘block使用情况)
ls -lh (看某一个文件多大)

系统通过文件名自动可以找到inode号
inode号找到对应的区域
inode找到对应的block(存放数据)
一个文件虽然占用一个inode但是会对应多个block,因为文件大。

小结:
inode与block小结:

  1. 格式化创建文件系统
  2. 在同一个文件系统(分区),两个文件inode相同,互为硬链接
  3. 创建一个文件只是占用一个inode和至少一个block
  4. 如何查看inode和block的使用情况 ls -i df -h

引起磁盘满的情况有两种,一种是block满了,另外一种是inode用光了

  1. block满了
    创建测试环境
    seq 100000000 >/tmp/big 创建大文件
    #第一个里程碑,先查看具体哪个目录满了
    df -h 查看不足的分区
    #第二个里程碑-是哪一个目录占的空间大,最终定位到目录或文件
[root@web03 ~]# du -sh /* | grep G
du: cannot access ‘/proc/1517/task/1517/fd/4’: No such file or directory
du: cannot access ‘/proc/1517/task/1517/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/1517/fd/4’: No such file or directory
du: cannot access ‘/proc/1517/fdinfo/4’: No such file or directory
5.1G	/tmp
1.3G	/usr
[root@web03 ~]#

从中可以看出/tmp目录下空间占用很高
查看占用空间较大的目录
[root@NSW1 ~]# du -sh /tmp/|grep G
[root@NSW1 ~]# du -sh /tmp/

#第三个里程碑问清楚是否可以删除,然后再操作。
企业案例:如果向磁盘写入数据提示:No space left on device (磁盘空间不足)通过df -h查看磁盘空间,发现没满,请问可能原因是什么?企业场景什么情况下会导致这个问题发生
inode用光了。

模拟环境的命令
mkdir -p /app/logs/
dd if=/dev/zero of=/dev/sdc bs=8k count=10
ls -l /dev/sdc
mkfs.ext4 /dev/sdc (创建文件系统相当于格式化)
mount -o loop /dev/sdc /app/logs

以上操作相当于创建了一个分区,且空间极其微小

[root@NSW1 logs]# touch stu{1..6}.log
[root@NSW1 logs]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        19G  1.5G   16G   9% /
tmpfs           491M     0  491M   0% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot
/dev/sdc         73K   15K   54K  22% /app/logs
[root@NSW1 logs]# df -i
Filesystem      Inodes IUsed   IFree IUse% Mounted on
/dev/sda3      1234576 55520 1179056    5% /
tmpfs           125514     1  125513    1% /dev/shm
/dev/sda1        51200    39   51161    1% /boot
/dev/sdc            16    16       0  100% /app/logs
[root@NSW1 logs]# \rm -f *.log
[root@NSW1 logs]# df -i
Filesystem      Inodes IUsed   IFree IUse% Mounted on
/dev/sda3      1234576 55520 1179056    5% /
tmpfs           125514     1  125513    1% /dev/shm
/dev/sda1        51200    39   51161    1% /boot
/dev/sdc            16    11       5   69% /app/logs

>/var/log/messages 清空;文件特殊无法删除只能清空
真实环境直接rm即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值