码迷,mamicode.com
首页 > 其他好文 > 详细

文件属性(上)

时间:2019-04-28 09:21:57      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:提示   color   100%   磁盘   direct   soft   app   读写   讲解   

一、什么是文件属性?

属性是一些描述性的信息,可以用来帮助您查找和整理文件。属性未包含在文件的实际内容中,而是提供了有关文件的信息。文件名在linux中是严格区分大小写的。

二、文件内容的讲解?

 [root@oldboyedu01-nb ~]# ls -lhi /etc/hosts 

390174 -rw-r--r--. 2 root root 200 Sep 25 20:19 /etc/hosts
[root@oldboyedu01-nb ~]# #文件属性=====ls -lhi 每一列的含义
                                用户属于的家庭    文件修改时间 文件名
390174   -     rw-r--r--  .        2       root   root       200    Sep 25 20:19 /etc/hosts
inode号码 文件的类型 文件的权限.(与selinux有关) 文件硬链接数量 主人 家人      文件大小

文件名不是文件的属性。

三、inode和block的讲解?

问:获得一个硬盘到可以向硬盘中存放数据的简介?
硬盘(房子),分区(划分隔断),格式化创建文件系统(装修-不同风格),挂载(安装门窗)
获取一个硬盘相当于我的一个房子,获取到房子后我们要对这个房子进行划分隔断,划分完隔断后,我们要对房子进行装修,对于装修我们可以够不同的风格,比如:复古风、沙河啦沙漠风光等等,装修完以后,我们要对这个房子就行安装门窗

四、inode 和block是怎么来的?

在每个linux存储设备或存储设备(磁盘或硬盘)的分区被格式化文件系统后(ext4),一般生成两部分,

五、inode的讲解?

1)含义
index node索引节点
含义:
用来存放文件属性的空间。通过inode号码找到这个空间的。
inode号码----家庭住址
inode空间----家庭
注意:
文件名不存放在inode中。

2)怎么来的
格式化创建文件系统

3)特点
1#inode存放文件属性
2#存放block的位置(指向block的指针)
3#创建一个文件要占用一个inode
4#inode节点号相同的文件,互为硬链接文件,可以认为是一个文件的不同入口。
硬链接数量====超市入口的数量
5#inode在某一个文件系统(分区),是唯一的。

4)怎么用/看******
? ls -i(看某些文件的inode号码)
df -i(系统里面inode用了多少剩余多少)

六、block的讲解

block
1)含义
数据块
block实际存放数据的位置

2)怎么来的
格式化创建文件系统


3)特点
1#block是实际存放数据的位置
2#block 4k(centos 6.x) 1k 8k
3#创建大文件会占用多个block,如果文件很小1k,4k剩余的空间会被浪费。
4#创建一个非空文件要占用一个inode和至少1个block
5#每读取一个block就会消耗一次磁盘I/O(input/output 磁盘读写)。

4)怎么用/怎么看
? df -h(磁盘block使用情况)
? ls -lh
小结:
inode与block小结:
1.格式化创建文件系统
2.在同一个文件系统(分区),两个文件inode相同,互为硬链接
3.创建一个非空文件要占用一个inode和至少1个block
4.如何查看inode和block的使用情况 df -i df -h

七、访问oldboyfile的寻宝过程

第一步:
oldboyfile(文件名字):
文件名相当于藏宝图名字,这里存放的是藏宝图的位置也就是inode号码,
第二步:
藏宝图存放的是 宝藏的位置和属性,
相当于blcok的位置数据的实体也就是宝藏的位置,和文件的属性,比如文件大小、文件类型,所属用户等等
第三步:
block文件的数据内容,也就是宝藏了。
可以参考例图:
oldboyfile寻宝过程.png

八、企业案例:如果向磁盘写入数据提示如下错误:No space left on device(磁盘空间不足),通过df -h查看磁盘空间,发现没满,请问可能原因是什么?企业场景什么情况下会导致这个问题发生?

1.500G 我向里面放入600G的数据 ----磁盘空间满了 block满了 df -h
2.df -h 磁盘空间还剩余很多,但是还是报错 no space left on device 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@oldboyedu-39-nb ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.6G 6.8G 19% /
tmpfs 931M 0 931M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
/dev/sdc 73K 14K 55K 21% /app/logs


######磁盘空间满了之 block满了
[root@oldboyedu-39-nb ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.6G 6.8G 19% /
tmpfs 931M 0 931M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
/dev/sdc 73K 14K 55K 21% /app/logs
[root@oldboyedu-39-nb ~]# cd /app/logs/
[root@oldboyedu-39-nb logs]# ls -lh /bin/ls
-rwxr-xr-x. 1 root root 115K Mar 23 02:52 /bin/ls
[root@oldboyedu-39-nb logs]# cp /bin/ls /app/logs/
cp: writing `/app/logs/ls‘: No space left on device
[root@oldboyedu-39-nb logs]# cp /bin/awk /app/logs/
cp: writing `/app/logs/awk‘: No space left on device
[root@oldboyedu-39-nb logs]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.6G 6.8G 19% /
tmpfs 931M 0 931M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
/dev/sdc 73K 70K 0 100% /app/logs
[root@oldboyedu-39-nb logs]# cd /app/logs/
[root@oldboyedu-39-nb logs]# ls -lh
total 68K
-rwxr-xr-x 1 root root 0 May 20 12:39 awk
drwx------ 2 root root 12K May 20 12:36 lost+found
-rwxr-xr-x 1 root root 56K May 20 12:39 ls
[root@oldboyedu-39-nb logs]# \rm -f ls
[root@oldboyedu-39-nb logs]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.6G 6.8G 19% /
tmpfs 931M 0 931M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
/dev/sdc 73K 14K 55K 21% /app/logs

 

######磁盘空间满了之 inode用光了
[root@oldboyedu-39-nb logs]# pwd
/app/logs
[root@oldboyedu-39-nb logs]# touch {1..6}.txt
touch: cannot touch `6.txt‘: No space left on device
[root@oldboyedu-39-nb logs]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 1.6G 6.8G 19% /
tmpfs 931M 0 931M 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot
/dev/sdc 73K 14K 55K 21% /app/logs
[root@oldboyedu-39-nb logs]# touch oldboy.txt
touch: cannot touch `oldboy.txt‘: No space left on device
[root@oldboyedu-39-nb logs]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 593344 57034 536310 10% /
tmpfs 238282 1 238281 1% /dev/shm
/dev/sda1 51200 39 51161 1% /boot
/dev/sdc 16 16 0 100% /app/logs

[root@oldboyedu-39-nb logs]# ls -l
total 12
-rw-r--r-- 1 root root 0 May 20 12:43 1.txt
-rw-r--r-- 1 root root 0 May 20 12:43 2.txt
-rw-r--r-- 1 root root 0 May 20 12:43 3.txt
-rw-r--r-- 1 root root 0 May 20 12:43 4.txt
-rw-r--r-- 1 root root 0 May 20 12:43 5.txt
drwx------ 2 root root 12288 May 20 12:36 lost+found
[root@oldboyedu-39-nb logs]# \rm -f *.txt
[root@oldboyedu-39-nb logs]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 593344 57034 536310 10% /
tmpfs 238282 1 238281 1% /dev/shm
/dev/sda1 51200 39 51161 1% /boot
/dev/sdc 16 11 5 69% /app/logs


企业案例:如果向磁盘写入数据提示如下错误:No space left on device(磁盘空间不足),通过df -h查看磁盘空间,发现没满,请问可能原因是什么?


企业场景什么情况下会导致这个问题发生?
定时任务


磁盘空间满了:
情况一:block-500G磁盘存放400G+200G视频 放不下了。
情况二:inode-大量的小文件

磁盘空间不足的案例

no space left on device磁盘空间不足-因为block满了。
创建大文件的案例:seq 100000000 >/tmp/big
#第一个里程碑-看看到底哪里满了
[root@oldboyedu01-nb ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 8.8G 8.8G 0 100% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 190M 40M 141M 22% /boot

#第二个里程碑-是哪一个目录占得空间大,最终定位到目录或文件
[root@oldboyedu01-nb ~]#
[root@oldboyedu01-nb ~]# du -sh /*|grep G
1.1G /usr
7.4G /var
[root@oldboyedu01-nb ~]# du -sh /var/*|grep G
7.3G /var/log
[root@oldboyedu01-nb ~]# du -sh /var/log/*|grep G
7.3G /var/log/messages
[root@oldboyedu01-nb ~]# ls -lh /var/log/messages
-rw------- 1 root root 7.3G Oct 16 19:20 /var/log/messages
#第三个里程碑-问清楚是否可以删除,然后在操作。

 

十、文件类型?

1、普通文件 - (file)
2、(纯)文本文件(ASCII)
3、二进制文件(binary)
4、数据格式文件(data)

linux下都有哪些普通文件类型有:

1、f  file  普通文件

2、d  directory  目录

3、-(regular file) 表示这是一个普通文件
4、l(soft link) 表示这是一个符号/软链接文件
5、b(block) 表示这是一个块设备文件
6、c(character) 表示这是一个字符设备文件
7、s(socket) 表示这是一个Socket(套接字)文件
8、p(named pipe) 表示这是一个管道文件

查看文件类型:file

root@oldboyedu-39-nb tmp]# ls -l /etc/hosts /tmp/etc.tar.gz /bin/ls
-rwxr-xr-x. 1 root root 117048 Mar 23 02:52 /bin/ls
-rw-r--r--. 2 root root 189 May 20 09:45 /etc/hosts
-rw-r--r-- 1 root root 9733974 May 20 02:51 /tmp/etc.tar.gz
[root@oldboyedu-39-nb tmp]# file /etc/hosts
/etc/hosts: ASCII text
[root@oldboyedu-39-nb tmp]# file /tmp/etc.tar.gz
/tmp/etc.tar.gz: gzip compressed data, from Unix, last modified: Sat May 20 02:51:31 2017
[root@oldboyedu-39-nb tmp]# #compressed 压缩的文件
[root@oldboyedu-39-nb tmp]#
[root@oldboyedu-39-nb tmp]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
[root@oldboyedu-39-nb tmp]# #executable 可以执行的 命令

文件属性(上)

标签:提示   color   100%   磁盘   direct   soft   app   读写   讲解   

原文地址:https://www.cnblogs.com/MouseCat/p/10781581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!