如何使用 Quota

标  题: ◇ 如何使用 Quota

发信站: 华南理工大学 BBS木棉站

 发信人: "chance" <chance@access.ttn.com.tw>, 看板: Linux

 > ========================================================================= <

 什麽是 Quota?

 Quota 让你可以从两方面指定磁碟的储存限制: 使用者所能够支配的索引节点(inodes)数量;以及使用者可以取用的磁碟区块数量。

 Quota 背後的含意是强制使用者在大部分的时间中保持在他们的磁碟使用限制之下,取消他们在系统上无限制地使用磁碟空间的能力。

 Quota 目前在 Linux  上的情况

 Quota 的支援据我所知自从 1.3.8x 版开始已经整合到核心之中,而且它也在 2.0  版的核心里。如果你的系统不支援 quota  那麽我建议你来次更新。

 目前为止,quota 只能在 ext2  档案系统上运作。

 在 Linux  上使用 Quota  的需求核心2.x 版的核心可以从这里取得

      ftp://tsx-11.mit.edu/pub/linux/sources/system/v2.0/

 Quota 软体

 端视你的 Linux  发行套件而定,在你的系统上可能已经装好也可能没有quota 软体。quota 软体的原始程式码可以从这里取得

 ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz.

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

  在 Linux  上设定 quota -  第一部份: 配置

 1.  配置你的核心

 重新配置你的核心并且对这个选项回答 y  以加入 quota  的支援:

      Quota support (CONFIG_QUOTA) [n] y

 2.  编译并安装 quota 软体

 Quota 软体的原始程式码可以从这里取得  

ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz

 虽然我上面提到的 quota  软体套件已经移植到 Linux  上面,而且应该在执行 2.x  版核心的系统上编译;但你可能会遇到一些麻烦,C 编译器不断地抱怨某些未定义的 MNTOPT 。如果发生这个问题,那麽你将得复制它的 mntent.h 档案到 /usr/include/metent.h  以便能编译 quota  。

 3.  修改你系统的启动指令稿以检查 quota  并且在启动时期打开 quota

 这里有个□例:

         # Check quota and then turn quota on.

        if [ -x /usr/sbin/quotacheck ]

        then

                echo "Checking quotas. This may take some time."

                /usr/sbin/quotacheck -avug

                echo " Done."

        fi

         if [ -x /usr/sbin/quotaon ]

        then

                echo "Turning on quota."

                /usr/sbin/quotaon -avug

        fi

 不变的规则是*永远*得要在挂入你 /etc/fstab 里的档案系统*之後*打开 quota , 否则 quota  将不会运作。我建议在你系统的启动指令稿最後面打开 quota , 或者,如果你喜欢,在你的系统指令稿刚挂入档案系统之处打开它。

 4. 修改 /etc/fstab

 还没有启用 quota  的分割区一般看起来像:

         /dev/hda1       /       ext2    defaults        1       1

        /dev/hda2       /usr    ext2    defaults        1       1

 要在档案系统上加入 quota  的话,在包含 "defaults" 这个字的第四个栏位加上 "usrquota" 。

        /dev/hda1       /       ext2    defaults        1       1

        /dev/hda2       /usr    ext2    defaults,usrquota       1       1

 5.  建立 "quota.user" 这个 quota  记录

 这个 quota  记录档,quota.user , 应该由 root 拥有,而且 root 有读写的权限而其他任何人都没有。以 root 的身分签入。进入你想要启用 quota  之分割区的最上层,并且这样建立 quota.user:

       touch /partition/quota.user

        chmod 600 /partition/quota.user

 6.  重新启动

 现在重新启动系统以便让你所作的变更生效。同时注意以後对於你还想要启用 quota  的其它分割区只需要步骤 4, 5,

以及 6  。

 在 Linux  上设定 quota -  第二部份: 为使用者指定 Quota这项操作是使用 edquota  指令执行的。例如,"edquota bob" 这个指令将会把你带进 vi (或是在你的 $EDITOR  环境变数中所指定的编辑器)以便为使用者 "bob"  编辑在每个启用 quota  的分割区上的 quota  。

         Quotas for user bob:

        /dev/hda2: blocks in use: 2594, limits (soft = 5120, hard = 6400)

                inodes in use: 356, limits (soft = 1000, hard = 1500)

 "blocks in use" 是使用者在某个分割区上已经使用的区块总数(以千位元组为单位)

 "inodes in use" 是使用者在某个分割区上所拥有的档案总数。

 除了 edquota  之外,还有三个你应该熟习的其它专有名词: 软性限制,硬性限制,以及缓冲期间。

 软性限制

 一般来说,软性限制指出 quota  使用者在分割区上拥有的磁碟用量总数。但是合并使用缓冲期间的时候,它的动作就如同一道临界线,当 quota使用者超越时便发出有关他即将违犯 quota  的警告。

 硬性限制

 硬性限制只在设定有缓冲期间时才会运作。它指出磁碟用量的绝对限制,quota 使用者不能超越他的硬性限制。

 缓冲期间

 以 "edquota -t" 指令执行,缓冲期间是对 quota  使用者实行软性限制之前的时间限制。可以使用的时间单位是秒、分、小时、日、星期、以及月。这是你使用 "edquota -t" 指令将会见到的:

         Time units may be: days, hours, minutes, or seconds

        Grace period before enforcing soft limits for users:

        /dev/hda2: block grace period: 0 days, file grace period: 0 days

 把 0 days 这个部份变更为你觉得合理的任何期限。我个人选择  7 days

(或是 1 week )。

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

 其它的 Quota  指令

 Quotacheck

 Quotacheck  是用来扫描档案系统的磁碟用量,并更新 "quota.user" 此quota 记录档到最新的状态。我建议定期在系统启动时执行  quotacheck或藉由 cronjob  每隔一段时间执行一次(像是,一星期? )。

 Repquota

Repquota  产生档案系统之摘要 quota  资讯。这里有份 repquota 所得的输出□例:

        # repquota -a

                                Block limits               File limits

        User            used    soft    hard  grace    used  soft  hard  grace

        root      --  175419       0       0          14679     0       0

        bin       --   18000       0       0            735     0       0

        uucp      --     729       0       0             23     0       0

        man       --      57       0       0             10     0       0

        user1     --   13046   15360   19200            806  1500       2250

        user2     --    2838    5120    6400            377  1000       1500 

Quotaon 以及 Quotaoff

Quotaon 是用来打开 quota  的计算; quotaoff 则是将其关闭。实际上两者很类似。它们是在系统启动与关机时执行的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 在服务主机xx.wlgcxxcompany.net(10.10.2.5)中手动添加一块SCSI硬盘 步骤如下: 1)使用 fdisk 命令新建一个分区。 ```shell sudo fdisk /dev/sdb n # 新建一个分区 p # 新建一个主分区 1 # 分区序号为1 # 从 2048 扇区开始分区,分区大小为1G。 +1G # 分区大小为1G w # 保存并退出 ``` 2)格式化分区为 ext4 文件系统。 ```shell sudo mkfs.ext4 /dev/sdb1 ``` 3)创建挂载点 /sdbnew 并挂载分区。 ```shell sudo mkdir /sdbnew sudo mount /dev/sdb1 /sdbnew ``` 2. 使用 quota 磁盘配额命令,将 /sdbnew 目录对普通用户 xxwlgc1 设置开机自动启用磁盘配额管理 bsoft 和 bhard 的限制大小分别为 300M 和 500M。 步骤如下: 1)安装 quota 包。 ```shell sudo apt-get update sudo apt-get install quota ``` 2)修改 /etc/fstab 文件,使 /sdbnew 分区在启动时挂载,并开启磁盘配额。 ```shell sudo vim /etc/fstab # 在文件末尾添加以下内容 /dev/sdb1 /sdbnew ext4 defaults,usrquota,quota 0 0 ``` 3)重新挂载文件系统。 ```shell sudo mount -a ``` 4)修改 quota 配额。 ```shell sudo quotacheck -cuv /sdbnew sudo setquota -u xxwlgc1 300M 500M 0 0 /sdbnew ``` 其中,-u 表示设定用户配额,300M 表示软限制配额,500M 表示硬限制配额。0 0 表示不使用 inode 配额。最后一个参数 /sdbnew 表示应用到的目录。 3. 在 xxwlgc1 用户登录下,使用 dd 命令在目录 /sdbnew 内创建一个 510M 的 xxsofttxt 文件,检查 soft 的警告值 500M 是否生效。 步骤如下: 1)切换至 xxwlgc1 用户。 ```shell sudo su - xxwlgc1 ``` 2)在 /sdbnew 目录下创建 510M 的 xxsofttxt 文件。 ```shell dd if=/dev/urandom of=/sdbnew/xxsofttxt bs=1M count=510 ``` 该命令会创建一个大小为 510M 的随机数据文件。 3)检查磁盘配额使用情况。 ```shell quota -s ``` 该命令会显示当前用户的配额使用情况,包括已用和可用空间,以及软限制和硬限制的值。如果软限制超过 500M,则会提示警告。 4)检查磁盘配额警告邮件。 quota 守护进程会在配额使用超限时发送警告邮件到用户的邮件地址中。可以使用 mail 命令查看是否收到了该邮件。 ```shell mail ``` 该命令会打开邮件客户端,按下键盘上的 q 键退出。如果收到了配额警告邮件,则会在邮件中看到类似以下内容的警告信息: ``` From root@xx.wlgcxxcompany.net Tue Jul 6 14:37:46 2021 Return-Path: <root@xx.wlgcxxcompany.net> X-Original-To: xxwlgc1 Delivered-To: xxwlgc1@xx.wlgcxxcompany.net Received: by xx.wlgcxxcompany.net (Postfix, from userid 0) id AABD1641E20; Tue, 6 Jul 2021 14:37:46 +0800 (CST) Message-Id: <20210706063746.AABD1641E20@xx.wlgcxxcompany.net> Date: Tue, 6 Jul 2021 14:37:46 +0800 (CST) From: root@xx.wlgcxxcompany.net (root) To: xxwlgc1@xx.wlgcxxcompany.net Subject: Quota warning for xxwlgc1 (uid 1003): softlimit exceeded on /sdbnew (/dev/sdb1) This is the Quota Administrator at xx.wlgcxxcompany.net. Following is the summary of quotas that are approaching or exceeding set limits: Disk quotas for user xxwlgc1 (uid 1003): Filesystem blocks quota limit grace files quota limit grace /dev/sdb1 524288 307200 512000 7 0 0 The soft limit for xxwlgc1 in /sdbnew (/dev/sdb1) has been exceeded. Quota limit(s) for xxwlgc1: Filesystem blocks quota limit grace files quota limit grace /dev/sdb1 524288 512000 512000 7 0 0 Please take the necessary corrective action to avoid violation of your quota limit(s). ``` 其中,softlimit exceeded on /sdbnew (/dev/sdb1) 表示软限制已经超过了 300M;quota -s 中也会显示类似的警告信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值