首先先了解一下文件或目录属性
[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/hosts1:文件硬链接数量 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小结:
格式化创建文件系统在同一个文件系统(分区),两个文件inode相同,互为硬链接创建一个文件只是占用一个inode和至少一个block如何查看inode和block的使用情况 ls -i df -h引起磁盘满的情况有两种,一种是block满了,另外一种是inode用光了
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即可
