第九章:文件核心基础知识,day12

本章重点

1)掌握Linux文件属性的各个列的含义(ls -lhi结果)及对应知识概念。
2)磁盘空间不足故障的多重判断和解决(面试常考)。
3)请描述软链接和硬链接的特点及区别(面试常考)。
4)请描述Linux系统文件删除的原理(面试常考)。

分类 硬链接 软链接
概念 与原文件指向同一个inode节点,节点号相同 快捷方式,指向原文件名
创建方式 ln ln -s
特点 不能对目录使用,不可跨文件系统,删除原文件对链接无任何影响 经常对目录使用,可跨文件系统,删除原文件链接失效
image.png

1. Linux是一个典型的多用户,多任务的系统

用户:管理Linux系统而存在的
用户一般分为用户名和用户ID,相当于名字和身份证
用户名是给人用的,用户ID是给计算机识别的
user UID
Linux里边所有的用户和进程都要有对应的用户
文件存在必须对应用户
进程运行必须对应用户

  • 命令:
    id root 查UID
    id 查看用户身份
    whoami 查自己

2. Linux用户分3类

  • 超级管理员 root
    权限堪称黄帝。UID为0(UID为0的都有皇帝对应的权限)
    修改:
    不要修改ID为0便管理员
    作业:root密码丢失了如何找回来?
  • 虚拟用户(傀儡)
    实际存在的用户,又不允许登录。
    价值何在?
    满足文件或进程或属主的要求。但是不会带来管理风险
    UID: uid 1-499
  • 普通用户
    实际存在的用户,又允许登录。
    管理员身份创建的(大臣)
    权限仅限制在家目录,在一些系统级目录可读不可写,不可以进入/root目录
    UID {C7 1000起步 C6 500 起步}最高60000
  • 创建用户


    image.png
  • image.png

3. 用户组:集合、组织

  • Linux中每一个用户都要有一个组织,这个组织就叫用户组
    用户组也是给人看的,用户组也有唯一标识,Group ID简称GID
    默认情况创建用户,并没有创建用户组,他自动创建一个
    和用户名相同的用户组以及相同的GID


    image.png

4. 用户和用户组的对应关系

  • (1)1对1
    (2)1对多个用户组
    (3)多个用户对应一个用户组
    (4)多对多

5. 文件权限:严格的权限,Linux安全权限严格

image.png

image.png

6. (789)列文件最后修改时间

  • 文件时间有三种
    修改时间:Modify 文件内容被改过
    访问时间:Access 最后被读取的时间
    变化时间:Change 属性改变的最后时间
    stat 命令可以看
    ls 也可以

ls参数:
-t modify,文件内容被改过之后的时间。
-c change,文件属性发生改变的时间。
-a access,文件内容被访问过的时间。

image.png

[root@oldboyedu ~]# stat /etc/hosts
File: ‘/etc/hosts’
Size: 158 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 16829878 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:net_conf_t:s0
Access: 2020-10-01 00:00:21.849999186 +0800访问时间
Modify: 2013-06-07 22:31:32.000000000 +0800修改时间
Change: 2019-03-04 11:15:49.426692303 +0800变化时间
Birth: -
[root@oldboyedu ~]# stat -c %A /etc/hosts
-rw-r--r--

[root@oldboyedu /data]# echo oldboy>>test.txt
[root@oldboyedu /data]# stat test.txt
File: ‘test.txt’
Size: 14 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 33656257 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-10-01 11:07:28.953508888 +0800
Modify: 2020-10-01 11:07:53.119507988 +0800
Change: 2020-10-01 11:07:53.119507988 +0800
Birth: -
[root@oldboyedu /data]# cat test.txt
oldboy
oldboy
[root@oldboyedu /data]# cat test.txt
oldboy
oldboy
[root@oldboyedu /data]# stat test.txt
File: ‘test.txt’
Size: 14 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 33656257 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-10-01 11:08:32.147506535 +0800
Modify: 2020-10-01 11:07:53.119507988 +0800
Change: 2020-10-01 11:07:53.119507988 +0800
Birth: -
[root@oldboyedu /data]# chmod +x test.txt
[root@oldboyedu /data]# stat test.txt
File: ‘test.txt’
Size: 14 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 33656257 Links: 1
Access: (0755/-rwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:default_t:s0
Access: 2020-10-01 11:08:32.147506535 +0800
Modify: 2020-10-01 11:07:53.119507988 +0800
Change: 2020-10-01 11:08:57.442505593 +0800
Birth: -

[root@oldboyedu /data]# ls --time-style=long-iso -l
total 12
-rw-r--r--. 1 root root 0 2020-10-01 00:19 1.txt
-rw-r--r--. 1 root root 0 2020-10-01 00:19 2.txt
-rw-r--r--. 1 root root 0 2020-10-01 00:19 3.txt
-rw-r--r--. 1 root root 0 2020-10-01 00:19 4.txt
-rw-r--r--. 1 root root 0 2020-10-01 00:19 5.txt
-rw-r--r--. 1 root root 187 2020-10-01 09:01 oldboy.tar.gz
-rw-r--r--. 1 root root 18 2020-10-01 09:01 paichu.txt
-rwxr-xr-x. 1 root root 14 2020-10-01 11:07 test.txt

7. 什么是索引点?

  • 命令:df -i 查看inode数量
    df -h查看block数量

  • 第一列:
    表现形式是数字 33631841 叫做文件的索引节点(Index Node)
    类似人的身份证,索引节点是文件在系统中的唯一标识。
    找一个文件最终都要通过索引节点才能找到
    索引节点的概念出在ext文件系统中(ext2 ext4 ext3).

  • 索引节点是硬盘上的一块存储空间。大小256字节或512字节。

  • 索引节点里存放是数据是文件的属性(大小、时间、用户和组、权限等)都
    在索引节点里,唯独不包含文件名(文件名在上级目录的block里)。

  • 磁盘要想使用,先分区,格式化(创建文件系统)。
    格式化创建文件系统时,就会生成大量的inode和block。
    inode作用存储文件的属性信息,同时存放指向文件实体(block)的指针(类似软链接)
    block作用是存放文件内容的(大片)。

  • Block叫做磁盘块,是用来存放实际数据的实体单元(ext文件系统一般最大为4KB),即用来真正存放数据,例如:照片、视频等普通文件数据,单个大的文件需要占用多个Block块来存储,
    特别小的单个文件如果不能占满整个Block块,剩余的空间也无法在利用。

  • 一个Block最多只能存一个文件的内容,一个block 4K,放了0.1K文件,剩3.9K浪费了。


    image.png

    image.png

    image.png
  • 磁盘满原因有两种:
    1、inode满了。
    2、block满了。
    ====================================
    提示:
    no space left on device 报错,没有空间在设备上了。
    磁盘满了。
    [root@oldboyedu /]# cd /app/logs/
    [root@oldboyedu /app/logs]# touch {1..100}.txt
    touch: cannot touch ‘6.txt’: No space left on device
    touch: cannot touch ‘7.txt’: No space left on device
    ====================================
    检查步骤:
    步骤1:df -h
    步骤2: df -i 看是不是inode满了
    ====================================
    为什么inode会满?
    小文件太多
    初始化时候 block数量远大于inode数量。
    一个文件大片 占一个inode,10万个block。
    [root@oldboyedu /app/logs]# cp /bin/cat ddd
    [root@oldboyedu /app/logs]# cp /bin/cat dddd
    cp: error writing ‘dddd’: No space left on device
    cp: failed to extend ‘dddd’: No space left on device
    文件满了。
    9.5.6 磁盘空间不足导致企业故障的案例 自学。。 讲文件系统时候回来讲这里

8.硬链接

  1. 什么是硬链接?
    具有相同inode节点号的文件互为硬链接。
    一个文件的两个入口。
    [root@oldboyedu ~]# ls -ldi test test/.
    16964029 drwxr-xr-x. 2 root root 4096 Oct 1 14:07 test
    16964029 drwxr-xr-x. 2 root root 4096 Oct 1 14:07 test/.
    [root@oldboyedu /data]# ls -ldi oldboy
    33631853 drwxr-xr-x. 5 root root 45 Oct 4 21:03 oldboy
    [root@oldboyedu /data]# ls -ldi oldboy oldboy/. oldboy/test{1..3}/..
    33631853 drwxr-xr-x. 5 root root 45 Oct 4 21:03 oldboy
    33631853 drwxr-xr-x. 5 root root 45 Oct 4 21:03 oldboy/.
    33631853 drwxr-xr-x. 5 root root 45 Oct 4 21:03 oldboy/test1/..
    33631853 drwxr-xr-x. 5 root root 45 Oct 4 21:03 oldboy/test2/..
    33631853 drwxr-xr-x. 5 root root 45 Oct 4 21:03 oldboy/test3/..
  2. 硬链接原理


    image.png
  3. 测试
    创建硬链接:
    命令组成:ln 源文件 硬链接文件
  • a.文件硬链接
    [root@oldboyedu /data]# echo "I am oldboy." >oldboy.txt
    [root@oldboyedu /data]# cat oldboy.txt
    I am oldboy.
    [root@oldboyedu /data]# ln oldboy.txt oldboy_hard_link
    [root@oldboyedu /data]# ls -lirt
    total 20
    33656257 -rwxr-xr-x. 1 root root 14 Oct 1 11:07 test.txt
    33656238 -rw-r--r--. 2 root root 13 Oct 4 21:10 oldboy.txt
    33656238 -rw-r--r--. 2 root root 13 Oct 4 21:10 oldboy_hard_link
    作用:
    1、备份,防止误删。
    [root@oldboyedu /data]# ln /etc/hostname /opt/hostname
    [root@oldboyedu /data]# cat /opt/hostname
    oldboyedu
    [root@oldboyedu /data]# rm -f /etc/hostname
    [root@oldboyedu /data]# cat /etc/hostname
    cat: /etc/hostname: No such file or directory
    [root@oldboyedu /data]# cat /opt/hostname
    oldboyedu
    [root@oldboyedu /data]# ln /opt/hostname /etc/hostname
    [root@oldboyedu /data]# cat /etc/hostname
    oldboyedu
  • b.目录硬链接
    不支持人工创建目录硬链接。
    [root@oldboyedu /data]# ln oldboy oldgirl
    ln: ‘oldboy’: hard link not allowed for directory
    老男孩的思考:
    /etc/目录,对应一个分区
    /home目录,还可能对应一个分区。
    ln /etc/ /home/oldboy

9.软链接:

本质是快捷方式,指向源文件实体,本身和源文件是不同的文件。
实践:

  • 文件
    [root@oldboyedu /data]# !echo
    echo "I am oldboy." >oldboy.txt
    [root@oldboyedu /data]# cat oldboy.txt
    I am oldboy.
    [root@oldboyedu /data]# ln -s oldboy.txt oldboy_soft_link
  • 目录:是工作中的重点
    [root@oldboyedu /data]# mkdir oldboy
    [root@oldboyedu /data]# touch oldboy/test.txt
    [root@oldboyedu /data]# ln -s oldboy oldboy_soft_link_dir
    [root@oldboyedu /data]# ls oldboy_soft_link_dir/
    test.txt
    [root@oldboyedu /data]# ls oldboy
    test.txt
  • 工作中为什么会使用软链接。
    第一个用途:
    安装软件:/application/nginx-1.10
    过半年:/application/nginx-1.20
    导致一个问题,工作中,开发等引用/application/nginx-1.10路径。
    安装软件:/application/nginx-1.10===>/application/nginx(让开发用)
    过半年: /application/nginx-1.20===>/application/nginx(让开发用)
    第二个用途:
    /etc/对应的分区要满了,没法放很多文件,但是程序还想通过/etc/目录访问文件。
    此时,我们可以把文件放入/opt/oldboy下,然后做一个到/etc/oldboy的软链接。
    [root@oldboyedu /data]# mkdir /opt/oldboy
    [root@oldboyedu /data]# touch /opt/oldboy/{1..3}.txt
    [root@oldboyedu /data]# ln -s /opt/oldboy/ /etc/oldboy
    [root@oldboyedu /data]# ls /etc/oldboy
    1.txt 2.txt 3.txt
    [root@oldboyedu /data]# ll /opt/oldboy
    total 0
    -rw-r--r--. 1 root root 0 Oct 4 22:02 1.txt
    -rw-r--r--. 1 root root 0 Oct 4 22:02 2.txt
    -rw-r--r--. 1 root root 0 Oct 4 22:02 3.txt

Linux文件删除原理

  1. 静态文件:没有进程或程序正在访问的文件
    所有的硬链接数为0(i_link),即所有硬链接都被干掉了,包括自身。
    硬链接的数量的代表变量符号i_link
    rm -f oldboy.txt oldboy_hard_link
    执行完 其实文件也没删,关机停止运行。
    a.系统定时清理没有文件名的inode。
    b.磁盘检查会清理。
    c.增加新文件时优先占用没有文件名的inode。
    恢复的工具:debugfs,ext3grep等等。
    亡羊补牢其实不可取的,违反运维的三大核心原则。
    多备份,操作前备份,异服务器和异地备份。
  2. 动态文件:有程序或进程访问的文件
    删除原理:
    a.所有硬链接删除。i_link为0.
    b..i_count是进程调用文件的数量(引用计数)。所有进程调用都要停止取消。i_count为0


    image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容