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表示禁用

  • 相关阅读:
    PHP7 快速编译安装
    php访问url的四种方式
    php获取文件 return array数组的值
    thinkphp3.2自定义success及error跳转页面
    think php 访问时
    vtk点云数据的显示[转]
    strlen() 和 sizeof() 在字符串中的使用
    函数 MultiByteToWideChar() 详解
    函数WideCharToMultiByte() 详解
    wchar_t 和 char 之间转换
  • 原文地址:https://www.cnblogs.com/chenxuf/p/9048547.html
Copyright © 2011-2022 走看看