Linux学习—磁盘配额工具quota

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习—磁盘配额工具quota相关的知识,希望对你有一定的参考价值。

磁盘配额——Linux作为一个多用户的操作系统,实际生活中会发生多人共同使用一个磁盘的情况,,为了保证一个磁盘的有效利用,必须对磁盘进行使用率的限制,因此磁盘配额(quota)会是一个非常有用的工具



目录

  • quota的使用限制

  • quota的设置内容(xfs)

  • 使用quota的案例(重点)


一、quota的使用限制

    对EXT系列文件系统,quota仅能针对整个文件系统进行设计,无法对单一的目录进行磁盘配额;而在xfs的文件系统中,可以使用quota对目录进行磁盘配额,因此在进行磁盘配额前,一定要对文件系统进行检查。

    核心必须支持quota,centos7默认支持quota功能。

    只对一般用户有效,因为root拥有全部的磁盘空间。

    若启用SELinux功能,不是所有的目录都能设定quota,默认quota仅能对/home进行设定。


二、quota的设置内容(xfs)

    分别针对用户、群组、个别目录(user,group,project)进行磁盘配额

    限制inode和block的用量,既然quota是管理文件系统的,那么对inode和block的限制也在情理之中

    soft/hard,表示具体限制的数值大小,当磁盘容量达到soft时,系统会发出警告,要求降低至soft值以下,当达到hard时,系统会禁止继续增加新的文件。

    宽限时间(一般为7天),当某一用户使用磁盘容量达到soft时,系统会给出一个grace time,若超过这个天数,soft值会变成hard值并禁止该用户对磁盘增加新的文件


三、使用quota的案例

    ①编写脚本/app/bin/adduser.sh,创建用户myquota1,myquota2,myquota3,myquota4,myquota5,密码都为centos。都位于myquotagrp这个组。这五个用户有一个共享目录/app/home/myquota,并且只有myquotagrp这个组的所有成员对这个共享目录拥有全部权限,其他人没有任何权限。

  1 #!/bin/bash
  2 groupadd myquotagrp
  3 for num in {1..5}
  4 do
  5     useradd -d /app/home/myquota$num -G myquotagrp myquota$num
  6     echo "centos" |passwd --stdin myquota$num
  7 done
  8 mkdir /app/myquota
  9 chgrp myquotagrp /app/myquota
 10 chmod 2770 /app/myquota

查看效果如下:

技术分享图片

    ②对文件系统进行检测并开启文件系统支持

    由于centos7默认是xfs文件系统并且内核支持quota功能,所以用centos7的/app目录进行试验,

技术分享图片

    对于xfs文件系统,由于quota功能在挂载一开始就决定了,所以mount命令的-o remount选项不能生效,只能通过修改/etc/fstab文件进行quota功能的开启,然后卸载(umount /app)再重新挂载(mount /app), 修改内容如下:

技术分享图片

    针对quota主要有三个类别设置

        ·usrquota    用户

        ·grpquota    群组

        ·prjquota    单一目录,但是不能和grpquota同时存在

    ③观察quota的管理数据

    我们先来看这条指令:xfs_quota

    xfs_quota -x -c "command" [挂载点]

        -x    专家模式,后续才可以跟-c选项

          -c    后边跟命令

        command: print    简单列出主机内文件系统的信息

                  df       和原来的df命令的一样,但是比原来的df显示的数值更加精确

                  report   后边必须跟支持quota的载入点,列出quota的项目设置

                           report后可以跟-u -g -p -i -b -h等选项

技术分享图片

后面跟-u -g -p的话值显示相对应的信息,而不是全部user/group/project列出来,-i显示inode的使用情况,-h表示以人们便于阅读的单位(例如KB,MB等)

                  state    列出支持quota功能的文件系统的quota状态(user/group/project的开启状态

    ④设置限制值的大小

    设置myquota1,myquota2,myquota3,myquota4,myquota5的soft/hard为250M/300M限制,grace time设置为14天。

xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota1" /app
xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota2" /app
xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota3" /app
xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota4" /app
xfs_quota -x -c "limit -u bsoft=250M bhard=300M myquota5" /app
xfs_quota -x -c "timer -u -b 14days" /app

设置之后的状态:

技术分享图片

技术分享图片

之后切到myquota1用户实验限额结果:

技术分享图片

在家目录下创建310M的文件,显示报错,同时查看家目录下新创建的文件的大小实际是300M

    

    ⑤对project的限制(/app/myquota目录的限制)

        第一步:设定目录,项目名称(project),项目ID

                其中需要配置两个相关的文件/etc/projects,/etc/projid(默认没有这两个文件,需要创建,如果文件名出错后边的会失败)

echo "11:/app/myquota" > /etc/projects  #设置项目ID和目录的对应关系
echo "myquotaproject:11" > /etc/projid  #设置项目名称和项目ID的对应关系
xfs_quota -x -c "project -s myquotaproject"  #初始化项目名称

技术分享图片

        第二步:对目录设定具体限制值,将/app/myquota设置为450M/500M

xfs_quota -x -c "limit -p bsoft=450M bhard=500M myquotaproject" /app

 技术分享图片





以上是关于Linux学习—磁盘配额工具quota的主要内容,如果未能解决你的问题,请参考以下文章

Linux中如何针对用户及组设置磁盘配额

磁盘配额(Quota)

Linux磁盘管理-quota磁盘配额

Linux CentOS 8(磁盘容量配额(Quota))

Linux CentOS 8(磁盘容量配额(Quota))

quota - linux磁盘配额管理