linux - 练习题 - 05

0、文件属性 inode  block

 
 
文件属性 === ls -lhi 每一列的含义
[root@oldboyedu01 ~]# ls -lhi /etc/hosts
390175 -rw-r--r--. 2 root root 158 Jul  8 23:47 /etc/hosts
 
390175  # inode号码
-# 文件的类型
rw-r--r--.   # 文件的权限(与selinux有关)
2  #文件硬链接数量  
root  #主人   
root  #家人(用户属于的家庭)
158   #文件大小
Jul  8 23:47  #文件修改时间
/etc/hosts    #文件名
 
解释:
inode和block简介
获得一个硬盘到可以向硬盘中存放数据
硬盘
分区
格式化创建文件系统
挂载
 

inode    (index node  节点)

一、含义:

用来存放文件属性的空间,通过inode号码找到这个空间
inode号码  - 家庭地址
inode空间  - 家庭
二、怎么来的:
格式化创建文件系统 
三、特点:
        1. inode存放文件属性
        2. 存放block的位置(指向block的指针)
        3. 创建一个文件占用一个inode
        4. inode节点号相同的文件,互为硬链接文件,可以认为是一个文件的不同入口。
                硬链接数量 == 超市入口的数量
        5.inode在某一个文件系统(分区),是唯一的。
 四、怎么查看inode
        ls -i    (看某些文件的inode号码)
        df -i  (系统里面inode用了多少剩余多少)
        
[root@oldboyedu01 ~]# ls -lhi
            total 3.4M
            140392 -rw-------.  1 root root  1.1K Jul  8 23:13 anaconda-ks.cfg
            145174 -rw-r--r--.  1 root root  1.6M Apr 24 21:15 get-pip.py
[root@oldboyedu01 ~]# df -i      #(查看inode)
Filesystem     Inodes IUsed  IFree IUse% Mounted on
/dev/sda3      593344 82974 510370   14% /
tmpfs          363134     1 363133    1% /dev/shm
/dev/sda1       51200    39  51161    1% /boot
 
 

block  (数据块) 

一、含义:
        数据块
        block实际存放数据的位置 
二、怎么来的:
        格式化创建文件系统
三、特点:
        1.block是实际存放数据的位置
        2.block  一般是 4k(centos 6.x)  / 1k / 8k 
        3.创建大文件会占用多个block,如果文件很小1k, 4k 剩余的空间会被浪费
        4.创建一个非空文件要占用一个indoe和至少一个block
        5.每读取一个block就会消耗一次磁盘I/O (input/output 磁盘读写)
四、怎么用/怎么看
        df -h  (磁盘block使用情况)
        ls -lh  查看某个文件的blcok
         [root@oldboyedu01 ~]# df -h     #( 查看block)
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  2.2G  6.3G  26% /
tmpfs           1.4G     0  1.4G   0% /dev/shm
            /dev/sda1       190M   40M  141M  22% /boot
 
 
系统,查看文件的过程:
 
 
 
 
 
小结:
    inode与block小结
        1. 格式化创建文件系统
        2.在同一个文件系统(分区),两个文件indoe相同,互为硬链接
        3.创建一个非空文件要占用一个inode和至少一个1个block
        4. 如何查看inode和block的使用情况  df -i  /  df -h
 
 

一、磁盘空间不足案例详解

前提:         
        seq 100000000 >/tmp/big
解决:
        df -h
        du -sh /*
        du -sh /* |grep G
        du -sh /usr/* |grep G
    
[root@oldboyedu01 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  2.2G  6.3G  26% /
tmpfs           1.4G     0  1.4G   0% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot
[root@oldboyedu01 ~]# du -sh /*
8.0K    /app
。。。
[root@oldboyedu01 ~]# du -sh /* |grep G
。。。
1.4G    /usr
[root@oldboyedu01 ~]# du -sh /usr/* |grep G
 

二、写入磁盘时,提示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@oldboyedu01 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  2.2G  6.3G  26% /
tmpfs           1.4G     0  1.4G   0% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot
/dev/sdc         73K   14K   55K  21% /app/logs
[root@oldboyedu01 ~]# df -i
Filesystem     Inodes IUsed  IFree IUse% Mounted on
/dev/sda3      593344 82970 510374   14% /
tmpfs          363134     1 363133    1% /dev/shm
/dev/sda1       51200    39  51161    1% /boot
/dev/sdc           16    11      5   69% /app/logs
 
查看:
cd /app/logs/
touch stu{1..6}.log
df -h
df -i
解决:
        inode用光了,解决删除文件;  rm -rf *.log
 
 

三、文件类型、扩展名

[root@oldboyedu01 ~]# ls -lhi
total 3.4M
140392 -rw-------.  1 root root  1.1K Jul  8 23:13 anaconda-ks.cfg
145174 -rw-r--r--.  1 root root  1.6M Apr 24 21:15 get-pip.py
130052 -rw-r--r--.  1 root root   22K Jul  8 23:13 install.log
130053 -rw-r--r--.  1 root root  5.8K Jul  8 23:12 install.log.syslog
145924 drwxr-xr-x.  6  501 games 4.0K Jul 11 22:11 pip-8.0.2
145912 -rw-r--r--.  1 root root  1.1M Apr 20  2016 pip-8.0.2.tar.gz
145216 drwxr-xr-x. 10  501 games 4.0K Jul 11 21:59 setuptools-19.6
145191 -rw-r--r--.  1 root root  627K Apr 23  2016 setuptools-19.6.tar.gz
。。。
 
意思:
    140392 : inode
     -           :  f = file  普通文件
            file /bin/ls
            二进制文件,命令; file /bin/ls
            文本文件;  file /etc/hosts
            数据文件;  file /tmp/etc.tar.gz
    d           :  d = directory  目录
    l            :  l = softlink 软链接(快捷方式)
 
 
扩展名: 文件后面的小尾巴
 
        windows    通过扩展名区分不同类型的文件
        linux           扩展名是用来给我们看的
 
.sh         脚本文件
.conf      配置文件
 

四、用户和用户组简介

用户分为3类:
        主人    所有者的名字
        家人    所有者属于的组的名字
        陌生人   
 
[root@oldboyedu01 tmp]# ll -hi /etc/hosts
390175 -rw-r--r--. 2 root root 158 Jul  8 23:47 /etc/hosts
[root@oldboyedu01 tmp]# id oldboy   # id查询用户信息  属于哪个用户组
uid=500(oldboy) gid=500(oldboy) groups=500(oldboy)
 
 
linux中存在于系统中的用户如何分类
UID   user id    用户的id号码  == 身份证号码
GID   group id 用户组的id号码 == 户籍号
 
  1. root  (皇帝)   
    1. UID == 0
  2. 虚拟用户 (傀儡)
    1. UID == 1-499  系统中每个进程要有一个对应的用户,无法使用。
  3. 普通用户 (平民百姓)
    1. UID == 500 + 
 
如何保护皇帝:
  1. 禁止root远程登录
  2. 修改ssh默认的端口22
  3. 定期分析/var/log/secure  记录着用户的登录信息
 

五、与用户有关的文件

/etc/passwd  存放的是用户的信息
root:x:0:0:root:/root:/bin/bash
oldboy:x:500:500::/home/oldboy:/bin/bash
解释:
第一列:用户姓名
第二列:存放密码的地方
第三列:UID
第四列:GID
第五列:用户的说明信息,默认为空
第六列:用户的家目录
root         ~    /root
oldboy     ~   /home/oldboy
第七列:用户使用的shell,用户使用的命令解释器
/bin/bash   ---   centos默认的命令解释器
/sbin/nologin  --- 用户无法登录系统,相当于傀儡用户
 
/etc/shadow  用户密码的信息
/etc/group     用户组的信息
 

六、基础权限

r   4   read 可以读取文件内容
w  2 write 可以写文件内容
x  1 execute 可以运行文件( 命令 脚本)
-   0什么权限也没有
 
[root@oldboyedu01 ~]# ll /etc/hosts
-rw-r--r--. 2 root root 158 Jul  8 23:47 /etc/hosts
 
-    rw-     r--     r--.  2 root root 158 Jul  8 23:47 /etc/hosts
    主人    家人   陌生人
    6          4       4 
 
[root@oldboyedu01 ~]# ls -l /bin/ls
-rwxr-xr-x. 1 root root 117048 Mar 23  2017 /bin/ls
7 5 5 
 
[root@oldboyedu01 ~]# ls -l /etc/passwd /etc/shadow
-rw-r--r--. 1 root root 1226 Aug 12 18:17 /etc/passwd
----------. 1 root root  866 Aug 12 18:19 /etc/shadow
 

七、软硬链接,区别

软链接: windows快捷方式
也叫符号链接:
 
软链接由来:
[root@oldboyedu01 oldboy]# ln -s oldboy.txt oldboy.txt-soft
[root@oldboyedu01 oldboy]# ll
total 52
-rw-r--r--. 1 root root   96 Jul 10 05:24 alex.txt
。。。
-rw-r--r--. 1 root root    0 Aug 22 21:30 oldboy
-rw-r--r--. 1 root root   31 Aug 24 02:49 oldboy.txt
lrwxrwxrwx. 1 root root   10 Aug 30 04:34 oldboy.txt-soft -> oldboy.txt
。。。
        
特点:
1.存放着源文件的位置
2.源文件被删除,软链接就找不到了
3.节约时间
 
硬链接由来:
  1. 相当于超市(文件的内容)的前后门,通过不同的大门(文件)进入。
  2. 在同一个分区中,两个文件或多个文件的inode号码相同,这些文件互为硬链接。
    
[root@oldboyedu01 oldboy]# ln oldboy.txt oldboy.txt-hard
 
[root@oldboyedu01 oldboy]# ls -lhi oldboy.txt*
140454 -rw-r--r--. 2 root root 31 Aug 24 02:49 oldboy.txt
140454 -rw-r--r--. 2 root root 31 Aug 24 02:49 oldboy.txt-hard
132738 lrwxrwxrwx. 1 root root 10 Aug 30 04:34 oldboy.txt-soft -> oldboy.txt
 
特点:
  1. 文件相当于超市,硬链接数量就是超市一共有多少门
  2. 删除硬链接或者源文件,文件还是可以使用的
  3. 把硬链接和源文件都删除,文件被删除  == 硬链接数量为0
 
软硬链接区别: 
解答:  
1) 如何创建:    
         a)默认不带参数情况下,ln 命令创建的是硬链接,带-s 参数的 ln 命令创建 的是软链接。  
2) 含义:   
          a)硬链接文件与源文件的 inode 节点号相同,而软链接文件相当于 windows 下面的快捷方式(inode 节点号与源文件不同) 
3) 特点:  
          a)不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常被用到     
          b)软链接可以跨文件系统,硬链接不可以跨文件系统。
 
4) 怎么没的(源文件,软链接,硬链接与删除)    
           a)除软链接文件,对源文件及硬链接文件无任何影响;    
           b)除文件的硬链接文件,对源文件及软链接文件无任何影响;    
           c)除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状);    
           d)删除源文件及其硬链接文件,整个文件才会被"真正"的删除。
 
 

八、文件彻底删除某个文件没有被彻底删除,导致的磁盘空间满了。(原因:inode用光了)

    1)删除这个文件所有相关的硬链接-rm---删除厕所所有的入口 
    2)这个文件的进程调用数也为 0   ------没有人在使用厕所
    
  1. 硬链接数为0
  2. 进程调用数为0  
 
某个文件没有被彻底删除,导致的磁盘空间满了。(原因:inode用光了)
模拟思路
seq 8000000000
df -h     # (查看block是否满了)
du -sh /* |grep G 
du -sh /var/log/* |grep G
rm -f /var/log/secure 
df -h   # 这里删了没有被释放  还是满的
du -sh /* |grep G  # 因为系统中某个文件没有被彻底删除
 
如何找出硬链接数量为0,进程调用数不为0
[root@oldboyedu01 ~]# lsof |grep delete
。。。
重启软件,就恢复了;;
        /etc/init.d/rsyslog  restart
 
磁盘空间不足  
总结:
1.block满了 
2.inode满了,大量的小文件
3.block 文件没有被彻底删除磁盘空间不足,硬链接数数量为0,进程调用数不为0;
 

九、linux修改、访问、改变时间简介

mtime   = modified time  文件的修改时间 文件内容的变化时间
atime    = access time       文件的访问时间
ctime    = change time      文件属性的改变时间  硬链接数量 文件大小 文件权限 
 
[root@oldboyedu01 oldboy]# stat oldboy.txt
  File: `oldboy.txt'
  Size: 75            Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d    Inode: 133061      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-08-30 05:45:43.903891969 +0800
Modify: 2018-08-30 05:45:34.505890770 +0800
Change: 2018-08-30 05:45:34.521891383 +0800
 
 
修改文件:
echo hello >>oldboy.txt
ln oldboy.txt oldboy.txt-hard
 
查看时间:
stat oldboy.txt
           

十、文章总结及作业

  1. 文件删除原理
  2. 软链接与硬链接的区别
  3. 磁盘空间不足系列及排错过程
  4. /etc/passwd 每一列含义
  5. linux三种实际那
  6. linux启动过程
 
 
 
 
posted @ 2018-09-02 23:27  Alice的小屋  阅读(154)  评论(0编辑  收藏  举报