zoukankan      html  css  js  c++  java
  • 17.磁盘容量配额和软硬方式链接

    1.quota:进行磁盘容量配额管理,从而限制用户的硬盘可用容量或所能创建的最大文件个数。

      软限制和硬限制的功能。

        软限制:当达到软限制时会提示用户,但仍允许用户在限定的额度内继续使用。
        硬限制:当达到硬限制时会提示用户,且强制终止用户的操作。

      Centos 7 系统中已经安装了quota 磁盘容量配额服务程序包,但存储设备却默认没有开启对quota 的支持,此时需要手动编辑配置文件,让 Centos 7 系统中的/boot 目录能够支持quota磁盘配额技术。

      在重启系统后使用mount命令查看,即可发现/boot 目录已经支持quota 磁盘配额技术了:  

    [root@Centos ~]# vim /etc/fstab 
    # /etc/fstab
    # Created by anaconda on Wed Jul 29 13:24:21 2020
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info/dev/mapper/centos_centos-root /                       xfs     defaults        0 0
    UUID=5290d0be-c146-4107-b0da-1dff813fe4f1 /boot                   xfs     defaults,uquota        0 0
    /dev/mapper/centos_centos-swap swap                    swap    defaults        0 0
    /dev/sdb1 /newFS xfs defaults 0 0
    /dev/sdb2 swap swap defaults 0 0

      

    [root@Centos ~]# reboot
    [root@Centos ~]# mount | grep boot
    /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,usrquota)

      

    2.xfs_quota :专门针对XFS 文件系统来管理quota 磁盘容量配额服务而设计的命令,格式为“quota [参数] 配额文件系统”。

      其中,-c 参数用于以参数的形式设置要执行的命令;-x参数是专家模式,让运维人员能够对quota 服务进行更多复杂的配置。

      举例:创建一个用于检查quota 磁盘容量配额效果的用户tom,并针对/boot 目录增加其他人的写权限,保证用户能够正常写入数据:

      使用xfs_quota命令来设置用户tom 对/boot 目录的quota 磁盘容量配额。具体的限额控制包括:硬盘使用量的软限制和硬限制分别为3MB 和6MB;创建文件数量的软限制和硬限制分别为3 个和6 个。  

    [root@Centos ~]# useradd tom
    [root@Centos ~]# chmod -Rf o+w /boot

      

    [root@Centos ~]# xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 tom' /boot
    [root@Centos ~]# xfs_quota -x -c report /boot
    User quota on /boot (/dev/sda1)
                                   Blocks                     
    User ID          Used       Soft       Hard    Warn/Grace     
    ---------- -------------------------------------------------- 
    root           149140          0          0     00 [--------]
    tom                 0       3072       6144     00 [--------]
    
    [root@Centos ~]# su - tom
    [tom@Centos ~]$ dd if=/dev/zero of=/boot/tom bs=5M count=1
    1+0 records in
    1+0 records out
    5242880 bytes (5.2 MB) copied, 0.0404283 s, 130 MB/s
    [tom@Centos ~]$ dd if=/dev/zero of=/boot/tom bs=8M count=1
    dd: error writing ‘/boot/tom’: Disk quota exceeded
    1+0 records in
    0+0 records out
    6291456 bytes (6.3 MB) copied, 0.0270056 s, 233 MB/s

    3.edquota :编辑用户的quota 配额限制,格式为“edquota [参数] [用户] ”。

      -u参数表示要针对哪个用户进行设置;

      -g 参数表示要针对哪个用户组进行设置。  

      edquota 命令会调用Vi 或Vim 编辑器来让root 管理员修改要限制的具体细节。 

      举例把用户tom 的硬盘使用量的硬限额从6MB 提升到8MB:   

    [root@Centos ~]# edquota -u tom
    
    Disk quotas for user tom (uid 1114):
      Filesystem                   blocks       soft       hard     inodes     soft     hard
      /dev/sda1                      8192       3072       8192          1        3        6
    [root@Centos ~]# su - tom
    Last login: Tue Aug 18 17:57:35 CST 2020 on pts/0
    [tom@Centos ~]$ dd if=/dev/zero of=/boot/tom bs=8M count=1
    1+0 records in
    1+0 records out
    8388608 bytes (8.4 MB) copied, 0.0126815 s, 661 MB/s
    [tom@Centos ~]$ dd if=/dev/zero of=/boot/tom bs=10M count=1
    dd: error writing ‘/boot/tom’: Disk quota exceeded
    1+0 records in
    0+0 records out
    8388608 bytes (8.4 MB) copied, 0.0234795 s, 357 MB/s
    

    4.在 Linux 系统中存在硬链接和软连接两种文件。

      1)硬链接(hard link):可以将它理解为一个“指向原始文件inode 的指针”,系统不为它分配独立的inode 和文件。所以,硬链接文件与原始文件其实是同一个文件,只是名字不同。我们每添加一个硬链接,该文件的inode 连接数就会增加1;而且只有当该文件的inode 连接数为0 时,才算彻底将它删除。换言之,由于硬链接实际上是指向原文件inode 的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。需要注意的是,由于技术的局限性,我们不能跨分区对目录文件进行链接。
      2)软链接(也称为符号链接[symbolic link]):仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接文件也将失效,从这一点上来说与Windows 系统中的“快捷方式”具有一样的性质。

      ln :创建链接文件,格式为“ln [选项] 目标”

      

      为了更好地理解软链接、硬链接的不同性质,接下来创建一个类似于Windows 系统中快捷方式的软链接。这样,当原始文件被删除后,就无法读取新建的链接文件了。  

    [root@Centos ~]# echo "Hello, world" > hello.txt
    [root@Centos ~]# ln -s hello.txt hi.txt
    [root@Centos ~]# cat hi.txt 
    Hello, world
    [root@Centos ~]# ll hello.txt 
    -rw-r--r--. 1 root root 13 Aug 18 18:31 hello.txt
    [root@Centos ~]# rm -f hello.txt 
    [root@Centos ~]# cat hi.txt 
    cat: hi.txt: No such file or directory

      接下来针对一个原始文件创建一个硬链接,即相当于针对原始文件的硬盘存储位置创建了一个指针,这样一来,新创建的这个硬链接就不再依赖于原始文件的名称等信息,也不会因为原始文件的删除而导致无法读取。同时可以看到创建硬链接后,原始文件的硬盘链接数量增加到了2。  

    [root@Centos ~]# echo "hello ,what's your name" > meet.txt
    [root@Centos ~]# ln meet.txt nice.txt
    [root@Centos ~]# cat nice.txt 
    hello ,what's your name
    [root@Centos ~]# cat meet.txt 
    hello ,what's your name
    [root@Centos ~]# ll nice.txt 
    -rw-r--r--. 2 root root 24 Aug 18 18:35 nice.txt
    [root@Centos ~]# rm -rf meet.txt 
    [root@Centos ~]# cat nice.txt 
    hello ,what's your name
  • 相关阅读:
    软件体系架构复习要点
    Operating System on Raspberry Pi 3b
    2019-2020 ICPC North-Western Russia Regional Contest
    2019 ICPC ShenYang Regional Online Contest
    2019 ICPC XuZhou Regional Online Contest
    2019 ICPC NanChang Regional Online Contest
    2019 ICPC NanJing Regional Online Contest
    Codeforces Edu Round 72 (Rated for Div. 2)
    Codeforces Round #583 (Div.1+Div.2)
    AtCoder Beginning Contest 139
  • 原文地址:https://www.cnblogs.com/xinghen1216/p/13525195.html
Copyright © 2011-2022 走看看