BBS水木清华站∶精华区

作者: JoeLu (恼人的 RS-232) 看板: Linux 
标题: Re: Quota 的设定? 
时间: Wed Mar 19 17:56:14 1997 
 
※ 引述《spchiou <spchiou@mail.vit.edu.tw>, 看板: Linux》之铭言: 
 请问我安装的 linux server 没有 quotacheck ..等东东,请问要去那□抓呢?! 
 
ftp://linux.cis.nctu.edu.tw/pub/mirrors/sunsite/system/adm/quota_acct.tar.gz 
                                                           quotas-1.51-tar.gz 
 
 
 -------------------------------------------------------------------------- < 
 
发信人: "chance" <chance@access.ttn.com.tw>, 看板: Linux 
标  题: Re: 怎样可以设定一个 User 的 Quota 
发信站: TTN (Tue Oct 15 16:32:14 1996) 
转信站: JoeLu!netnews.ntu!linux2.tpml!UUserv.Net!news.isl.net.tw!aidebbs!sprin 
 
 
Tony K.L. Wong <klwong@cse.cuhk.edu.hk> 次写入到主题 
       我最近安装了 Slackware 96, 亦都装了 Quota, 但不懂如何去 
 设定一个 User 的 Quota, 我想知怎样才可以用到 Quota 这个功能. 
 
        /etc/fstab: 
                /dev/hda1  /  ext2  defaults,usrquota,grpquota  1  1 
        create quota file: 
                quotacheck -avug 
        rc.local add: 
                quotaon -avug 
        set user's quota: 
                edquota -u <username> 
        set group's quota: 
                edquota -g <groupname> 
 
 
 
 
        view user's quota: 
                quota -v <username> 
        report: 
                quotastates 
                repquota 
 
 
 
 
 
 ========================================================================= < 
 
 
 
 
什麽是 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 则是将其关闭。实际上 
两者很类似。它们是在系统启动与关机时执行的。 
 

BBS水木清华站∶精华区