Linux-- 高级文件系统管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux-- 高级文件系统管理相关的知识,希望对你有一定的参考价值。

 

这是本人第一次写博客,若有什么错误的地方或者不对的地方,还请各位不吝赐教!!!

 

一、磁盘配额的概念

 

由于Linux是一个多用户管理的操作系统,而Linux默认情况下并不限制每个用户使用磁盘空间的大小,假如某个用户疏忽或者恶意占满磁盘空间,将导致系统磁盘无法写入甚至崩溃;为了保证系统磁盘的有足够的剩余空间,我们需要对用户和组进行磁盘空间使用限制。

 

磁盘配额限制类型:

  1.     限制用户和组对磁盘空间的使用量

  2.     限制用户和组在磁盘内创建文件的个数

 

磁盘配额限制级别:

  1. 软限制:低级限制,此限制可以突破,突破时会被警告,超出部分会有宽限天数,宽限天数到期后超出部分被清空,软限制不能超过硬限制
  2. 硬限制:绝对限制,此限制不会被突破,达到指定限制后无法使用更多空间
  3. 宽限天数:当有数据超过软限制后,超出部分会被计时,宽限天数到期后超出部分数据将被清空,宽限天数默认是7天

 

注:磁盘配额是针对分区进行设置的,无法实现“某用户在系统中共计只能使用50MB磁盘空间”只能设置某用户在/home分区能使用30M这样的限制。切记:磁盘配额是针对分区的!

 

二、磁盘配额开启条件

 

内核是否支持磁盘配额?

#grep "CONFIG_QUOTA" /boot/config-2.6.32-431.el6.x86_64

 

       磁盘配额相关命令是否安装?

       #rpm –q quota

 

三、磁盘配额实验规划

 

   准备足够大小的分区,要远大于实验的需求空间

   创建实验用户和组

         用户:cj、bd、xz、

         组:thot

   磁盘配额规划

         thot:硬:500M     软:450M              文件数不限制

         cj:  硬:50M 软:40M         硬:10个 软:8个

         bd:  硬:250M    软:200M       文件数不限制

         xz:  硬:250M     软:200M       文件数不限制

  宽限天数修改为8天

 

四、磁盘配额实验流程

  1. 查看系统是否支持磁盘配额

    #grep "CONFIG_QUOTA" /boot/config-2.6.32-431.el6.x86_64

 

   2. 查看分区的挂载属性是否满足

    dumpe2fs –h  /dev/sdb1     | grep "Default mount options"

  查看结果中是否包含usrquota、grpquota两个挂载属性?

  如果没有两个挂载属性,则需要重新挂载并添加两个属性,并写入自动挂载

 

   3. 创建分区、用户、用户组

    分区大小要远大于实验要求大小,避免影响实验结果

    用户:cj、bd、xz

    组:thot

    注:创建用户时,指定thot为初始组

 

   4. 生成用户和组的配置文件

    quotacheck     选项 分区名

      -a    扫描/etc/mtab文件中所有启用磁盘配额功能的分区。如果加入此参数,命令后面就不需要加入分区名了

           -u    建立用户配额的配置文件,即生成aquota.user

           -g    建立组配额的配置文件,即aquota.group

           -v    显示扫描过程

           -c    清除原有的配置文件,重新建立新的配置文件

    注:若报错没有权限生成文件,则需要关闭SELinux

 

   5. 编辑配置文件、设置指定限制大小

    edquota   选项 用户名或组名

        -u    用户名

        -g    组名

        -t     设定宽限时间

             -p    复制磁盘配额规则,不需要每一个用户或者组都手动设置一遍

            #     edquota  -p    模板用户  -u    目标用户

    注:配置文件中所写大小默认单位KB

 

   6. 启动和关闭磁盘配额

     启动:

       quotaon   选项       分区名

              -a    根据/etc/mtab文件启动所有分区的磁盘配额(不写分区名)

              -u    启动用户的磁盘配额

              -g    启动组的磁盘配额

              -v    显示启动过程信息

    关闭:

      quotaoff  选项       分区名

              -a    根据/etc/mtab文件关闭所有分区的磁盘配额(不写分区名)

              -u    关闭用户的磁盘配额

              -g    关闭组的磁盘配额

             -v    显示启动过程信息

 

   7. 查看磁盘配额的信息

     查询指定用户和组的配额:

            quota     选项 用户或组名

               -u    用户名

               -g    组名

               -v    显示详细信息

                    -s    以常见单位显示大小

  8. 查询指定分区的磁盘配额:

     repquota         选项 分区名

               -u    查询用户配额

               -g    查询组配额

               -v    显示详情

                    -s    以常见单位显示

 

   9. 验证磁盘配额是否生效

    切换到执行用户,以预设用户身份进行文件创建(su)

     测试工具:

            dd 生成指定大小的文件(dd命令详解见附件)

            dd if=/dev/zero of=/分区名/testfile bs=1M count=60

    注意:用户的测试需要切换到指定用户身份,而组磁盘配额的验证需要?

 

   10. 非交互设置磁盘配额

    setquota   -u    用户名     软(容)  硬(容) 软(数)  硬(数) 分区名

    注:同样,这样的非交互式的命令更适合写入脚本,而且,假如有很多用户的磁盘配额配置相同也可以用复制来实现。

以上是关于Linux-- 高级文件系统管理的主要内容,如果未能解决你的问题,请参考以下文章

【学了就忘Linux高级文件系统管理】— 5.图形界面进行LVM分区

linux之高级文件系统管理

Linux C高级编程——文件操作之系统调用

Linux-- 高级文件系统管理

linux高级文件系统管理概述:处理交换分区设置文件系统配额配置raid和逻辑卷

linux高级文件系统管理——btrfs