12.22- linux文件属性详解

12.22

linux文件属性详解

内容:

1. inode和block特点与查看

2. 磁盘空间满了的三种常见故障类型排查与解决

3. 文件类型详解与查看

4. linux用户类型及相关文件

5. 服务器的连接与安全

6. 软链接与硬链接的区别,特点及创建

7. linux下彻底删除一个文件的原理与步骤

8. linux下三种时间介绍

第1章 整体说明

第2章 inode 与 block

2.1 inode:  index node  索引节点  存放的是文件/目录属性信息,大小,时间,类型,权限,   inode里面唯独不包含文件名本身。(文件的名字不是文件的属性)

2.2 block   块   文件的内容   数据存放的位置

2.3 inode  和block 特点

1. inode存放文件的属性,block的位置

2. 创建一个非空文件至少要占用一个inode和至少一个block

3. 在同一个分区中,如果两个文件的inode号码相同,这两个文件互为硬链接,硬链接相当于是文件

不同的入口

4. block是存放数据的空间

5. block大小4K,比较大的文件会占用多个block,比较小的文件(1K)剩余的空间无法使用

6. 磁盘读取数据是按block为单位读取的

7. 每读取一个block就会消耗一次磁盘I/O(input/output 磁盘读写)

2.4 怎么来的?

预备姿势:

大房子(硬盘)-->划分隔断(分区)-->装修(格式化)-->装修风格(文件系统类型)-->安装门窗(挂载)

inode 和block 是在格式化创建文件系统的时候诞生

2.5 查看文件内容与  inode 和block  的关系

用户→文件名→inode→block(文件内容)

2.6 怎么查看inode和block信息

2.6.1 查看inode

l ls  -lhi  /etc/hosts   查看某个文件inode号码

[[email protected] oldboy]# ls -lhi gao

total 12K

405094 -rw-r--r--. 1 root root   16 Dec 12 14:38 feng

390247 drwxr-xr-x. 2 root root 4.0K Dec 15 03:54 n

l df -i   查看系统中一共有多少inode数量

[[email protected] n]# df -i

Filesystem     Inodes IUsed  IFree IUse% Mounted on

/dev/sda3      593344 58618 534726   10% /

tmpfs           60748     1  60747    1% /dev/shm

/dev/sda1       51200    42  51158    1% /boot

2.6.2 block   磁盘容量

l ls  -lhi  /etc/hosts   查看某个文件大小

[[email protected] n]# ls -lhi /etc/hosts

260127 -rw-r--r--. 2 root root 177 May 20  2017 /etc/hosts

l df   -h    查看磁盘空间使用情况

[[email protected] n]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3       8.8G  1.7G  6.7G  20% /

tmpfs           238M     0  238M   0% /dev/shm

/dev/sda1       190M   40M  141M  22% /boot

软链接和硬连接的区别

2.7 【企业案例】磁盘空间满了,no space left on device(磁盘

空间不足)

创建测试环境

mkdir -p /app/logs

dd if=/dev/zero of=/dev/sdc bs=8K  count=10   创建指定大小文件

ls -l /dev/sdc

mkfs.ext4 /dev/sdc                格式化并创建文件系统(ext4)

mount -o loop /dev/sdc /app/logs          挂载

2.7.1 block满了

dd if=/dev/zero of=/dev/sdc bs=8K  count=10    模拟大文件

解决:删大文件,腾出空间

2.7.2 inode满了

touch {1..10}                                   模拟多个文件

解决:删小文件,腾出名额限制

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

错误:inode用光了

原因:大量的小文件    ---定时任务书写错误导致

第3章 文件类型

扩展名 .log   .txt  .conf   .avi  用来区分不同类型的文件

3.0.1 windows:   强制、严格通过扩展名识别不同类型文件

3.0.2 Linux:    扩展名方便我们人类区分不同文件类型

3.0.3 拓展名含义:   .conf    配置文件

.sh      脚本(命令大礼包)

3.0.4 linux下面常见的文件类型

-  (ls)  f (file)   普通文件

d          d            目录

l          l            软链接   符号链接   快捷方式

3.0.5  普通文件详解    

1. 纯文本文件  text     /etc/hosts

2. 二进制文件(命令)   /bin/ls

3. 数据文件(data)       压缩包

3.0.6 file    查看文件的类型

file  /tmp/etc.tar.gz

第4章 linux用户基础内容

UID   user   id    用户id

GID   group  id    用户组id

4.0.1 linux用户分类

root        皇帝   UID==0

虚拟用户   傀儡   linxu下面每个程序、进程都需要一个对应的用户和组

无法登录系统    UID==1--499

普通用户      百姓   UID=500+   (6万多)

4.0.2 id   查看用户id和所属组     id  oldboy

[[email protected] n]# id root

uid=0(root) gid=0(root) groups=0(root)

4.0.3 对于一个文件/用户来说,用户分为几种

/etc/hosts         主人       亲戚        陌生人

属主(所有者)    属组       其他区用户

[[email protected] n]# ls -l 6

-rw-r--r--. 1 root root 0 Dec 22 07:28 6

-普通文件   rw- 所有者   r--属组    r--其他用户

4.0.4 linux权限

r          读                         4

w          写                         2

x          可执行(命令  脚本)       1

-          没有权限

4.0.5 与用户相关的文件

/etc/passwd        存放用户的信息

/etc/shadow        存放用户密码

/etc/group          存放用户组信息

/etc/gshadow       存放用户组密码

4.0.6 /etc/passwd文件详解

centos6.9 默认shell  /bin/bash

第5章 服务器的连接与安全

5.0.1 连接到服务器:

1. ip

2. 用户

3. 密码

4. 端口号22

5.0.2 保护服务器:

1. 修改远程连接端口号

2. 禁止root用户远程登录系统

第6章 软连接(soft  link或symlink)与硬链接(hard  link

6.1 硬链接 :

6.1.1 概念:

文件(超市)的入口           硬链接

文件(超市)的入口数量       硬链接数量

在同一个分区中,inode号相同的文件互为硬链接

6.1.2  ln    创建链接      默认创建硬

[[email protected] gao]# ln yun.txt yun.txt_hard

[[email protected] gao]# ls -lhi yun.txt*

390247 -rw-r--r--. 2 root root 0 Dec 22 08:24 yun.txt

390247 -rw-r--r--. 2 root root 0 Dec 22 08:24 yun.txt_hard

6.1.3 作用:防止文件误删除,,两个入口,存在一个即可

6.1.4 特点:

1. 硬链接与原文件在同一分区,inode相同

2. 硬链接不可跨文件系统创建

3. 删除原文件,硬链接可用

4.不能对目录创建硬链接

6.2 软链接:   -s       默认权限 777

6.2.1 概念:

相当于windows的快捷方式

指向源文件

源文件丢失,软链接失效

6.2.2 ln  -s  创建软链接   

[[email protected] gao]# ln -s yun.txt yun.txt_soft

[[email protected]oldboy gao]# ls -lhi yun*

390247 -rw-r--r--. 2 root root 0 Dec 22 08:24 yun.txt

390247 -rw-r--r--. 2 root root 0 Dec 22 08:24 yun.txt_hard

405095 lrwxrwxrwx. 1 root root 7 Dec 22 08:29 yun.txt_soft -> yun.txt  指向源文件

6.2.3 特点:

1)软链接可跨文件系统建立

2)创建软链接尽量使用绝对路径(相对路径--源文件路径改变软链接不可用)

3)删除源文件,软链接失效

4)指向源文件,相当于windows的快捷方式

6.2.4 错误:创建软链接时使用相对路径,原文件移动位置,导致软链接不可用

6.2.5 结论:创建软链接用绝对路径

ln  -s  /oldboy/ett.txt     ett.txt_soft

6.3 总结

1) 删除原文件,软连接不可用

2) 删除硬链接,都没有影响

3) 删除源文件和硬链接,相当于没有任何入口(硬链接数为0)

第7章 Linux下面一个文件被彻底删除的条件

1. 文件的硬链接数为0                        rm

2. 进程调用数为0(谁还在使用这个文件)      lsof

7.0.1  lsof |grep “secure” 查看被进程调用的文件(是否有进程正在使用被删除的文件)

7.0.2 企业案例:  磁盘空间满了,删除大文件,可磁盘空间并没有减小

分析:你把文件删除了(硬链接),但这个文件还有进程在使用,所以这个文件并没有被彻底删除,最终导致磁盘空间不足

就好像你只是把超市的大门封住了,但超市本身还在

解决步骤

1.模拟环境

seq 500000 >>/var/log/messages

2.查看磁盘空间    df -h    逐层排查

[[email protected] /]# df -h         查看那个分区占空间大

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3       8.8G  6.3G  2.1G  75% /

tmpfs           238M     0  238M   0% /dev/shm

/dev/sda1       190M   40M  141M  22% /boot

3.[[email protected] /]# du -sh /var/* |grep "G"    进目录进一步排查哪个子目录/文件大

4.6G /var/log

[[email protected] /]# du -sh /var/log/* |grep "G"

4.6G /var/log/messages

4.删除文件  ---询问boss后删除

\rm /var/log/messages -f

检查:

5.查看磁盘空间

[[email protected] /]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3       8.8G  6.3G  2.1G  75% /

tmpfs           238M     0  238M   0% /dev/shm

/dev/sda1       190M   40M  141M  22% /boot

磁盘空间并没有被释放     由此---有某个文件并没有被彻底删除

6.lsof  |grep messages查看哪个进程在使用被删除的文件

[[email protected] /]# lsof |grep messages

rsyslogd   2491      root    1w      REG                8,3 4888893610     141095 /var/log/messages (deleted)

标志(detele)这个文件没有被彻底删除(硬链接数为0,进程调用数不为0)

7.重启进程     /etc/init.d/rsyslog  restart

再次检查

8.查看磁盘空间 df -h

[[email protected] /]# df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3       8.8G  1.7G  6.7G  21% /

tmpfs           238M     0  238M   0% /dev/shm

/dev/sda1       190M   40M  141M  22% /boot

磁盘空间被释放

7.0.3 总结:  

1.找出系统中硬链接数为0,进程调用数不为0的文件(没有被彻底删除的文件)

lsof  |grep delete

2.排查哪个文件占地大     du -   sh  /* |grep “G”

[[email protected] /]# du -sh /*|grep "G"

du: cannot access `/proc/50234/task/50234/fd/4': No such file or directory

du: cannot access `/proc/50234/task/50234/fdinfo/4': No such file or directory

du: cannot access `/proc/50234/fd/4': No such file or directory

du: cannot access `/proc/50234/fdinfo/4': No such file or directory

1.1G /usr

4.7G /var

3.以后会学习各种软件/服务日志及命令

7.1 磁盘空间系列小结:

7.1.1 block满了   文件没有被彻底删除(硬链接为0,进程调用数不为0)

工作中   lsof |grep delete  排查

7.1.2 block满了  正常满了

df -h 哪里满了

du  -sh  /* 一层一层排查  具体哪个目录/文件

确认之后,询问boss是否 删除

7.1.3 inode用光了

某个目录下有大量的小文件

----定时任务错误

l 解决方法:找出系统中目录大小大于1M

[[email protected] oldboy]# ls -lhd xiaodong/

drwxr-xr-x. 2 root root 4.0K May 20 23:22 xiaodong/

[[email protected] oldboy]# du -sh xiaodong/

11M xiaodong/

目录本身大小和目录下文件数量有关,与文件大小无关

目录占地面积     -----文件越多,占地越大

touch  {1..10000}.txt

[[email protected] oldboy]# ls -ldih xiaodong

394659 drwxr-xr-x. 2 root root 252K May 20 16:53 xiaodong

7.2 如何在linux中删除的大量的小文件

删除文件太多,删不了

[[email protected] xiaodong]# \rm -f *.txt

-bash: /bin/rm: Argument list too long

解决:

1)ls *.txt  |xargs rm     删除大量文件

[[email protected] xiaodong]# ls *.txt|xargs rm

[[email protected] xiaodong]# ls

注:2)删上亿个文件    一点一点删   否则会卡

3)删除目录(删除之前记录好目录的权限和所有者)

7.3 如何在linux中创建大量小文件

错误:

[[email protected] xiaodong]# touch {1..400000}.txt

-bash: /bin/touch: Argument list too long

解决:

echo {1..500000}.txt  |xargs touch   创建太多文件

第8章 linux 下面几种时间

8.1 文件被修改或被访问的时间

mtime  modify time 【修改时间】文件/目录的修改时间。文件内容修改

ctime   change time 【属性改变时间】文件/目录属性的改变时间,大小,硬链接数,权限,所有者,所属的组,类型

atime   access time  【访问时间】文件/目录的访问时间,cat查看

8.2 stat  显示文件时间信息    stat /oldboy.txt

[[email protected] oldboy]# stat oldboy.txt

File: `oldboy.txt'

Size: 29         Blocks: 8          IO Block: 4096   regular file

Device: 803h/2051d Inode: 405110      Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)

Access: 2017-12-22 03:11:51.662787272 +0800

Modify: 2017-05-20 06:27:29.100976131 +0800

Change: 2017-05-20 06:27:29.100976131 +0800

8.3 atime  短期内查看次数多只计入一次  (防止磁盘空间浪费)

第9章 总结:

1. 文件属性总体介绍

2. inode与block  怎么来的 啥意思 特点

3. 企业案例  磁盘空间不足  原因

4. 用户分类

5. /etc/passwd  每一列含义

6. linux权限

7. linux软链接与硬链接

第10章 注意

10.1 硬链接文件两个文件inode号相同 占用了几个两个inode一个block

10.2 touch {1..100}   快速创建多个文件

10.3 mv     原地移动相当于重命名

10.4 文件夹和文件都消耗inode和block

原文地址:http://blog.51cto.com/13517084/2055716

时间: 2024-11-10 12:37:45

12.22- linux文件属性详解的相关文章

Linux命令学习(22) linux文件属性详解

Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组.最近访问或修改的时间等内容.具体情况如下: 命令: ls -lih 输出: [[email protected] test]# ls -lih 总计 316K 2095120 lrwxrwxrwx 1 root root   11 11-22 06:58 linklog.log -> log2012.log 2095112 -rw-r--r-- 1 root root 296K 11-13 0

linux每日命令(26):Linux文件属性详解

阅读目录(Content) 命令: 输出: 说明: 关于inode: Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组.最近访问或修改的时间等内容.具体情况如下: 命令: ls -lih 输出: [[email protected] test]# ls -lih total 0 51621141 drwxr-xr-x. 4 root root 159 Nov 20 19:24 dir1 33980025 -rw-r--r--. 1 root

【转】每天一个linux命令(25):linux文件属性详解

原文网址:http://www.cnblogs.com/peida/archive/2012/11/23/2783762.html Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组.最近访问或修改的时间等内容.具体情况如下: 命令: ls -lih 输出: [[email protected] test]# ls -lih 总计 316K 2095120 lrwxrwxrwx 1 root root   11 11-22 06:58 link

linux文件属性详解

Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组.最近访问或修改的时间等内容.具体情况如下: 命令: ls -lih 输出: [[email protected] test]# ls -lih 总计 316K 2095120 lrwxrwxrwx 1 root root   11 11-22 06:58 linklog.log -> log2012.log 2095112 -rw-r--r-- 1 root root 296K 11-13 0

每天一个linux命令(25):linux文件属性详解

Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组.最近访问或修改的时间等内容.具体情况如下: 命令: ls -lih 输出: [[email protected] test]# ls -lih 总计 316K 2095120 lrwxrwxrwx 1 root root   11 11-22 06:58 linklog.log -> log2012.log 2095112 -rw-r--r-- 1 root root 296K 11-13 0

每天一个linux命令(25)--Linux文件属性详解

Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组.最近访问或修改的时间等内容.具体情况如下: 命令: ls  -lih 2098120 lrwxrwxrwx  1 root root 11 11-22 08:35 ack 第一列:inode 第二列:文件种类和权限 第三列:硬链接个数  数值为1时,表示本身,即没有硬链接. 第四列:属主 第五列:所归属的组 第六列:文件或目录的大小 第七列和第八列:最后访问或修改时间 第九列:文件名或目录名

linux 命令——25 linux文件属性详解

Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组.最近访问或修改的时间等内容.具体情况如下: 命令: ls -lih 输出: [[email protected] test]# ls -lih 总计 316K 2095120 lrwxrwxrwx 1 root root   11 11-22 06:58 linklog.log -> log2012.log 2095112 -rw-r--r-- 1 root root 296K 11-13 0

Linux信号详解

Linux信号详解 一 信号的种类 可靠信号与不可靠信号, 实时信号与非实时信号 可靠信号就是实时信号, 那些从UNIX系统继承过来的信号都是非可靠信号, 表现在信号 不支持排队,信号可能会丢失, 比如发送多次相同的信号, 进程只能收到一次. 信号值小于 SIGRTMIN的都是非可靠信号. 非可靠信号就是非实时信号, 后来, Linux改进了信号机制, 增加了32种新的信号, 这些信 号都是可靠信号, 表现在信号支持排队, 不会丢失, 发多少次, 就可以收到多少次. 信号值 位于 [SIGRTM

(转) Linux命令详解-date

Linux命令详解-date 原文:https://www.cnblogs.com/Dodge/p/4278292.html 在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参数]... [+格式] 2.命令功能: date 可以用来显示或设定系统的日期与时间. 3.命令参数: 必要参数: %H 小时(以00-23来表示). %I 小时(以01-12