zoukankan      html  css  js  c++  java
  • linux之磁盘配额(quota)使用方法(转)

    1.什么是quota

      简单的说就是限制用户对磁盘空间的使用量。

      因为Linux是多用户多任务的操作系统,许多人共用磁盘空间,为了合理的分配磁盘空间,于是就有了quota的出现。

    2.quota的用途
        显示磁盘使用情况和配额

    3.quota的一般作用对象 
        (1)针对WWW server 
        (2)针对mail server 
        (3)针对file server
    4.quota的限制
        (1)仅能针对整个文件系统 
        (2)需要kernel的支持 
        (3)只对一般用户有效

    5.quota的使用

      测试环境   

        RHEL6.6(默认kernel已经支持quota功能)

        /dev/sdb1  供测试的文件系统

        用户组   myquota

        用户   quota1,quota2

      具体操作如下

        (1)重新挂/dev/sdb1文件系统,并添加usrquota,grpquota参数

        [root@localhost ~]# mount -o remount,usrquota,grpquota /dev/sdb1

        重新挂载后,/dev/sdb1这个分区就支持quota功能了

        [root@localhost ~]# mount | grep /dev/sdb1
        /dev/sdb1 on /mnt/test type ext4 (rw,usrquota,grpquota)

        (2)添加用户组和用户

        [root@localhost ~]# groupadd myquota
        [root@localhost ~]# useradd -g myquota quota1
        [root@localhost ~]# useradd -g myquota quota2
        

        (3)生成quota配置文件

        [root@localhost ~]# cd /mnt/test/

        [root@localhost test]# quotacheck -ug .  

        [root@localhost test]# ls
        aquota.group  aquota.user  lost+found  生成quota配置文件
        (4)启动quota功能

        [root@localhost test]# quotaon /dev/sdb1
        若要关闭 使用quotaoff命令

        (5)修改quota配置文件

       
        配置文件内容如下
          Filesystem                   blocks       soft       hard     inodes     soft     hard
          /dev/sdb1                         0              0          0            0           0          0

        需要修改的是soft/hard的值,单位是KB,soft为警告值,hard为最大值,当磁盘使用量在soft-hard之间,就会发出警告(默认倒计时7天),若超过警告时间,磁盘使用量依然在soft-hard 之间,则会禁止使用磁盘空间。

        若修改blocks的soft/hard表示规定用户可以使用的磁盘空间大小(一般都是规定磁盘使用量)

        若修改的是inodes的 soft/hard值,表示规定用户可以创建的文件个数. 

     

        [root@localhost test]# edquota -u quota1    -->修改针对quota1用户的配置        

        Disk quotas for user quota1 (uid 500):
          Filesystem                   blocks          soft            hard         inodes      soft     hard
          /dev/sdb1                         0          100000       200000           0            0          0

        [root@localhost test]# edquota -u quota2    -->修改针对quota2用户的配置

        Disk quotas for user quota2 (uid 501):
          Filesystem                   blocks       soft               hard        inodes     soft     hard
          /dev/sdb1                     0             100000        200000          0             0        0
      

        [root@localhost test]# edquota -g myquota  -->修改针对myquota组的配置

        Disk quotas for group myquota (gid 500):
          Filesystem                   blocks       soft       hard     inodes     soft     hard
          /dev/sdb1                    251200     100000     300000          3        0        0    

       这样配置表示quota1,quota2用户最多使用200M的磁盘空间,超过100M就发出警告并进入倒计时,而myquota组最多使用300M的磁盘空间。

       也就是说,虽然quota1,quota2都有200M的最大磁盘空间能使用权限,但他们都属于myquota组,他们的总量不得超过300M

       

      

        修改权限

        [root@localhost test]# chmod 777 .
        [root@localhost test]# ll -d
        drwxrwxrwx. 3 root root 4096 8月  23 09:36 .
        切换quota1用户,进行测试

        [root@localhost test]# su quota1
        [quota1@localhost test]$ dd if=/dev/zero of=bigfile1 bs=1M count=150
        sdb1: warning, user block quota exceeded.   -->警告
        记录了150+0 的读入
        记录了150+0 的写出
        157286400字节(157 MB)已复制,1.02545 秒,153 MB/秒

        再写入一个大文件

        [quota1@localhost test]$ dd if=/dev/zero of=bigfile2 bs=1M count=150
        sdb1: write failed, user block limit reached.
        dd: 正在写入"bigfile2": 超出磁盘限额   -->超过200M的部分就无法写入了
        记录了46+0 的读入
        记录了45+0 的写出
        47513600字节(48 MB)已复制,0.381467 秒,125 MB/秒

        切换quota2用户

        [root@localhost test]# su quota2
        [quota2@localhost test]$ ls
        aquota.group  aquota.user  bigfile1  bigfile2  lost+found
        [quota2@localhost test]$ dd if=/dev/zero of=bigfile3 bs=1M count 50

        记录了50+0 的读入
        记录了50+0 的写出
        52428800字节(52 MB)已复制,0.410838 秒,128 MB/秒

        修改警告/宽限期时间

        [root@localhost test]$ edquota -t

        Grace period before enforcing soft limits for users:
        Time units may be: days, hours, minutes, or seconds
           Filesystem             Block grace period     Inode grace period
           /dev/sdb1                     7days                          7days

        

        查看quota1的quota信息

        [quota1@localhost test]$ quota -u quota1
        Disk quotas for user quota1 (uid 500): 
           Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
              /dev/sdb1  200000* 100000  200000   6days       2       0       0          -->已经进入警告的倒计时了
        

        查询quota2的quota信息

        [root@localhost test]# quota -u quota2
        Disk quotas for user quota2 (uid 501): 
             Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
            /dev/sdb1   51200  100000  200000               1       0       0       

        查询myquota组的quota信息
        [root@localhost test]# quota -g myquota
        Disk quotas for group myquota (gid 500): 
             Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
              /dev/sdb1  251200* 100000  300000   6days       3       0       0 

        总结:

           quotacheck [ -gubcfinvdMmR ] [ -F quota-format ] -a | filesystem

             -a   检查所有/etc/mtab中挂在的文件系统

             -u  只检查用户的quota

             -g  只检查用户组的quota

          quota

            不使用任何参数,查询当前用户的quota信息

            -u  username  查询某用户的quota信息

            -g  groupname  查询某用户组的quota信息

          edquota

            -u username   编辑某用户的quota配置

            -g groupname  编辑某用户组的quota配置

            -t        编辑警告时间的配置

        

          还有一个综合查询命令是

          repquota

             -a   报告所有支持quota的文件系统

             -u 报告针对user的quota信息

             -g 包裹针对group的quota信息

          一般三个参数一起使用

          [root@localhost test]# repquota -aug
          *** Report for user quotas on device /dev/sdb1
          Block grace time: 7days; Inode grace time: 7days
                            Block limits                File limits
          User            used    soft    hard  grace    used  soft  hard  grace
          ----------------------------------------------------------------------
          root      --      20       0       0              2     0     0       
          quota1    +-  200000  100000  200000  6days       2     0     0       
          quota2    --   51200       0       0              1     0     0       


          *** Report for group quotas on device /dev/sdb1
          Block grace time: 7days; Inode grace time: 7days
                            Block limits                File limits
          Group           used    soft    hard  grace    used  soft  hard  grace
          ----------------------------------------------------------------------
          root      --      20       0       0              2     0     0       
          myquota   +-  251200  100000  300000  7days       3     0     0    

    --------------------------------------------------------------------------------------------------------------

    edquota -u [user]

    配置文件的对应字段含义如下:

    Filesystem 文件系统

    blocks 已经使用的块数(块的单位为1K)

        soft 块数软限制,0表示禁用           #单位为KB,填1024则为1M,该项为超过提示项

        hard 块数硬限制,0表示禁用            #该项为最高限制数项

        inodes 已经创建的文件个数,如果后面有*表示已经超出软限制

        soft 创建的文件个数的软限制,0表示禁用

        hard 创建的文件个数的硬限制,0表示禁用

  • 相关阅读:
    Spring MVC 核心组件详解
    Spring MVC 入门就这一篇
    Spring 事务解决方案
    【UGUI源码分析】Unity遮罩之Mask详细解读
    游戏开发中不同时区下的时间问题
    ARTS第十三周(阅读Tomcat源码)
    Win10 电脑安装.NET低版本提示“这台计算机中已经安装了 .NET Framwork 4.6.2或版本更高的更新”问题
    Dynamics 365 Setup 提示SqlServer 存在
    Dynamics CRM "Verification of prerequisites for Domain Controller promotion failed. Certificate Server is installed."
    Dynamics CRM
  • 原文地址:https://www.cnblogs.com/chenxuf/p/9048547.html
Copyright © 2011-2022 走看看