• 磁盘容量配额(转)


     

    如前面介绍章节讲到的类Unix系统最初设计理念就让许多人一起使用,多任务的操作系统,但是硬件的资源是固定有限的,如果出现个小破坏份子不断的创建文件或下载电影,那么硬盘空间总有一天会被占满的吧,这时就需要quota服务帮助我们为每个用户限制可以使用的硬盘空间,一旦超出预算就不再允许他们使用。

    quota的磁盘配额可以限制用户的硬盘可用空间或最大创建文件数量,并且还有软/硬限制的区别:

    软限制:当达到软限制时会提示用户,但允许用户在规定期限内继续使用。

    硬限制:当达到硬限制时会提示用户,且强制终止用户的操作。

    查看内核是否支持quota功能:

    [root@linuxprobe ~]# dmesg | grep quota
    [ 3.140241] VFS: Disk quotas dquot_6.5.2
    

    查看quota程序包是否已经安装:

    [root@linuxprobe ~]# rpm -q quota
    quota-4.01-11.el7.x86_64
    

    查看boot目录是否支持quota功能(noquota表示暂时不支持):

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

    让/boot目录支持quota功能:

    [root@linuxprobe ~]# vim /etc/fstab
    UUID=6e97ef8f-51f1-4781-8f1c-0acb9f631b32 /boot xfs defaults,uquota 0 0
    

    重启主机后即可生效:

    [root@linuxprobe ~]# reboot
    

    查看boot目录是否支持quota功能(usrquota表示已经支持):

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

    创建两个用于quota实验的用户tom:

    [root@linuxprobe ~]# useradd tom
    

    需要允许其他用户对/boot目录写入文件操作:

    [root@linuxprobe ~]# chmod -Rf o+w /boot
    

    xfs_quota命令用于管理XFS文件系统的quota硬盘配额,格式为:“quota [参数] 配额 文件系统”。

    参数 作用
    -c 命令 以交换式或参数的形式设置要执行的命令。
    -p 设置提示或报错信息的程序名称,默认为xfs_quota。
    -x 专家模式,能够对quota做更多复杂的配置。

    使用xfs_quota命令设置对tom用户在/boot目录的磁盘配额,具体要求如下:

    使用quota专家模式限制磁盘软限制为3m、磁盘硬限制为6m、文件软限制为3个且文件硬限制为6个。

    [root@linuxprobe ~]# xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 tom' /boot
    

    获取当前/boot目录上的quota配额限制:

    [root@linuxprobe ~]# xfs_quota -x -c report /boot
    User quota on /boot (/dev/sda1)   Blocks
    User ID Used Soft Hard Warn/Grace
    ---------- --------------------------------------------------
    root 95084 0 0 00 [--------]
    tom 0 3072 6144 00 [--------]
    

    切换至tom用户:

    [root@linuxprobe ~]# su - tom
    

    正常创建了一个为5M的文件:

    [tom@linuxprobe ~]$ 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.123966 s, 42.3 MB/s
    

    创建8M文件时强制终止并报错了:

    [tom@linuxprobe ~]$ 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.0201593 s, 312 MB/s
    

    查看当前用户的quota限制(显示硬盘配额已占满):

    [tom@linuxprobe ~]$ quota
    Disk quotas for user tom (uid 1001):
    Filesystem blocks quota limit grace files quota limit grace
    /dev/sda1 6144* 3072 6144 6days 1 3 6
    

    edquota命令用于超级用户编辑其他用户的quota配额限制,格式为:“edquota [参数] [用户]”。

    参数 作用
    -u 编辑用户的配额限制。
    -g 编辑用户组的配额限制。
    -r 通过RPC协议编辑远程的配额。


    编辑tom的配额限制,将硬盘的硬限制修改为8m(8192k):

    [root@linuxprobe ~]# edquota -u tom
    Disk quotas for user tom (uid 1001):
    Filesystem blocks soft hard inodes soft hard
    /dev/sda1 6144 3072 8192 1 3 6
    

    切换至tom用户:

    [root@linuxprobe ~]# su - tom
    Last login: Mon Sep 7 16:43:12 CST 2015 on pts/0
    

    再来创建8m的文件就不会有问题了:

    [tom@linuxprobe ~]$ 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.0268044 s, 313 MB/s
    
  • 相关阅读:
    Mybatis学习随笔3
    Mybatis学习随笔2
    Mybatis学习随笔
    Java校招面试-什么是线程安全/不安全
    装饰器2
    装饰器
    默认传参的陷阱
    处理日志文件
    第二天
    用户登录
  • 原文地址:https://www.cnblogs.com/love3556/p/5915175.html
Copyright © 2020-2023  润新知