zoukankan      html  css  js  c++  java
  • 文件系统之磁盘配额

    一、磁盘配额

    1、磁盘配额概念

    配置用户对磁盘进行指定大小或者文件数量的使用权限。
    1)用户配额和组配额
    2)磁盘容量限制和文件个数限制
    3)软限制和硬限制
    4)宽限时间 如果用户的空间占用数处于软限制和硬限制之间,统会在用户登陆时警告用户磁盘将满,这个时间就是宽限时间,默认是 7 天。如果达到了宽限时间,用户的磁盘占用量还超过软限制,那么软限制就会升级为硬限制。

    2、磁盘配额条件

    1)查看系统内核必须支持磁盘配额

    [root@centos ~]# grep CONFIG_QUOTA /boot/config-2.6.32-642.el6.x86_64 
    CONFIG_QUOTA=y
    CONFIG_QUOTA_NETLINK_INTERFACE=y
    # CONFIG_QUOTA_DEBUG is not set
    CONFIG_QUOTA_TREE=y
    CONFIG_QUOTACTL=y
    

    2)系统中必须安装了 quota 工具

    [root@centos ~]# rpm -qa | grep quota
    quota-3.17-23.el6.x86_64
    
    3、磁盘配额实验

    1)创建测试用户和测试组

    [root@centos ~]# useradd love1
    [root@centos ~]# passwd love1
    [root@centos ~]# useradd love2
    [root@centos ~]# passwd love2
    [root@centos ~]# groupadd test
    [root@centos ~]# gpasswd -a love1 test
    Adding user love1 to group test
    [root@centos ~]# gpasswd -a love2 test
    Adding user love2 to group test
    
    1. 开启磁盘配额
    [root@centos ~]# mount -o remount,usrquota,grpquota / # 重新挂载 /,并加入用户和用户组的磁盘配额功能.
    #如果我们要想永久生效,则需要修改/etc/fstab 文件,
    [root@centos ~]# vim /etc/fstab 
    /dev/mapper/vg_centos-lv_root  /     ext4    defaults,usrquota,grpquota        1 1
    

    3)建立磁盘配额的配置文件

    quotacheck [选项] [分区名]
    选项:  
    -a:扫描/etc/mtab 文件中所有启用磁盘配额功能的分区。如果加入此参数,命令后面就不需要加入分区名了  
    -c:不管原有的配置文件,重新扫描并建立新的配置文件  
    -u:建立用户配额的配置文件,也就是生成 aquota.user 文件  
    -g:建立组配额的配置文件,会生成 aquota.group 文件  
    -v:显示扫描过程  
    -m:强制以读写的方式扫描文件系统,和-M 类似。一般扫描根分区时使用。  
    -f:强制扫描文件系统,并写入新的配置文件。一般扫描新添加的硬盘分区时使用
    
    quotacheck -avugm 
    #如果我们自动扫描/分区建立配额配置文件时,因为/分区已经挂载成读写系统,而 quotacheck 需要把分区先挂载成只读分区,然后建立配置文件,
    最后再挂载回来,所以不能直接在/分区建立配 置文件。这时就需要使用-m 强制以读写方式扫描文件系统了。
    
    1. 建立配额文件
    [root@centos ~]# ll /
    total 122
    -rw-------    1 root root  8192 Dec  5 19:49 aquota.group
    -rw-------    1 root root  7168 Dec  5 19:49 aquota.user
    

    5)、设置用户和组的配额限制

    [root@centos ~]# edquota [选项] [用户名或组名] 
    选项:  
    -u 用户名: 设定用户配额  
    -g 组名: 设定组配额  
    -t:  设定宽限时间  
    -p:  复制配额限制。如果已经设定好某个用户的配额限制,其他用户的配额限制如果和这个用户相同,那么可以直接复制配额限制,而不用都手工指定。
    
    #我们给 love1 用户设定的配额限制是:磁盘空间软限制是 20MB,硬限制是 30MB;文件个数的软限制是 8 个,硬限制是 10 个
    
    [root@centos ~]# edquota -u love1
    Disk quotas for user love1 (uid 500):
    Filesystem                           blocks       soft             hard        inodes     soft     hard
    /dev/mapper/vg_centos-lv_root         16          20000          30000          5        8        10
    
    再给 love2 用户配置限额,love2 用户要求是空间软限制 250MB,硬限制 250MB,文件个数不做限制
    [root@centos ~]# edquota -u love2
    Disk quotas for user love2 (uid 501):
      Filesystem                   blocks       soft       hard     inodes     soft     hard
      /dev/mapper/vg_centos-lv_root         16          250000          300000          5        0        0
    
    接下来给 test 组配置限额,test 组要求是空间软限制是 450MB,硬限制 500MB,文件个数不做限制
    Disk quotas for group test (gid 502):
      Filesystem                   blocks       soft       hard     inodes     soft     hard
      /dev/mapper/vg_centos-lv_root          0          450000          500000          0        0        0
    

    6)、启动和关闭配额

    启动配额
    [root@centos ~]# quotaon [选项] [分区名] 
    选项:  
    -a:依据/etc/mtab 文件启动所有的配额分区。如果不加-a,后面就一定要指定分区名  
    -u:启动用户配额  
    -g:启动组配额  
    -v:显示启动过程的信息 
    
    [root@centos ~]# quotaon -ugv /
    /dev/mapper/vg_centos-lv_root [/]: group quotas turned on
    /dev/mapper/vg_centos-lv_root [/]: user quotas turned on
    
    [root@localhost ~]# quotaoff [选项] [分区名] 
    选项  
    -a:依据/etc/mtab 文件关闭所有的配额分区。如果不加-a,后面就一定要指定分区名  
    -u:关闭用户配额  
    -g:关闭组配额 
    -v:显示启动过程的信息 
    
    关闭配额
    [root@centos ~]# quotaoff -ugv /
    /dev/mapper/vg_centos-lv_root [/]: group quotas turned off
    /dev/mapper/vg_centos-lv_root [/]: user quotas turned off
    
    

    7)磁盘配额查询

    [root@centos ~]# repquota [选项] [分区名] 
    选项:  
    -a: 依据/etc/mtab 文件查询配额。如果不加-a 选项,就一定要加分区名  
    -u: 查询用户配额  
    -g: 查询组配额  
    -v: 显示详细信息  
    -s: 以习惯单位显示容量大小 
    
    repquota –augvs
    

    8)测试

    [love1@centos ~]$ dd if=/dev/zero of=/home/love1/test/test bs=1M count=60
    dm-0: warning, user block quota exceeded.
    dm-0: write failed, user block limit reached.
    dd: writing `/home/love1/test/test': Disk quota exceeded
    30+0 records in
    29+0 records out
    30699520 bytes (31 MB) copied, 0.633288 s, 48.5 MB/s
    

    9)交互式命令设置

    [root@centos  ~]# setquota -u 用户名 容量软限制 容量硬限制 个数软限制  个数硬限制 分区名 
    [root@centos  ~]# useradd love3
    [root@localhost ~]# passwd love3 # 建立用户 
    [root@localhost ~]# setquota -u love3 10000 20000 5 8 / 
    # 设定用户在 / 分区的容量软限制为 10MB ,硬限制 20MB 。文件个数软限制 5 个,硬限制 #8 个 。 
    
  • 相关阅读:
    [转]C# 文本框只能输入数字
    [转]C# dataGridview 报“索引-1没有值”的解决办法
    配置<authorization>节(配置文件)
    [转]javascript的urlencode
    SSM框架搭建问题
    web server
    mysql 系列
    UI 框架、ORM、权限系统
    一个基于 .NET Core 2.0 开发的简单易用的快速开发框架
    DotNetty 版 mqtt 开源客户端 (MqttFx)
  • 原文地址:https://www.cnblogs.com/hjnzs/p/11991934.html
Copyright © 2011-2022 走看看