Linux磁盘限额(Quota)
Linux磁盘限额(Quota) 黄瑞琪 使用 quota 时有几个基本的限制 quota 实际在运作的时候,是针对『整个 partition』进行限制的,例如:如果你的 /dev/hda5 是挂载在 /home 底下,那么在 /home 底下的所有目录都会受到限制! Linux 系统核心必須有支持 quota 这个模块才行 目前新版的 Linux distributions 如: Mandrake 9.0 与Red Hat 8.0 等使用的是 Kernel 2.4.xx 的核心版本,这个核心版本支持新的 quota 模块,使用的预设文件( aquota.user, aquota.group )将不同于旧版本的 quota.user, quota.group !而由旧版本的 quota 可以藉由 convertquota 这个程式来转换! quota 这支程式的限制內容主要分为底下几个部分: soft :这是最低限制容量的意思,使用者在宽限期间之內,他的容量可以超过 soft ,但必需要宽限时间之內将磁盘容量降低到 soft 的容量限制之下! hard :这是『绝对不能超过』的容量!跟 soft 相比的意思为何呢?通常 hard limit 会比 soft limit 为高,例如网络磁盘空间为 30 MB ,那么 hard limit 就设定为 30MB ,但是为了让使用者有一定的警戒心,所以当使用空间超过 25 MB 时,例如使用者使用了 27 MB 的空间时,那么系统就会警告使用者,让使用者可以在『宽限时间內』将他的文件量降低至 25 MB ( 亦即是 soft limit )之內!也就是说, soft 到 hard 之间的容量其实就是宽限的容量啦!可以达到针对使用者的『警示』作用! 宽限时间:当您的使用者使用的空间超过了 soft limit ,却还没有到达 hard limit 时,那么在这个『宽限时间』之內,就必需要请使用者将使用的磁盘容量降低到 soft limit 之下!而当使用者将磁盘容量使用情況超过 soft limit 时,『宽限时间』就会自动被启动,而在使用者将容量降低到 soft limit 之下,那么宽限时间就会自动的取消! 基本的 quota 指令 基本上分为两种,一种是查询功能(quota, quotacheck, quotastats, warnquota, repquota),另一种则是编辑quota 的內容( edquota, setquota )。 [root @test /root ]# quota [-guvs] [user,group] 参数说明: -g? :显示group 群组 -u? :显示user -v? :显示quota 的值 -s? :选择inod 或 硬盘空间来显示[root @test /root ]# quota -guvs???? <==显示目前执行者(就是 root )的 quota 值 [root @test /root ]# quota -uvs test <==显示test 这个使用者的 quota 值 [root @test /root ]# quotacheck [-auvg] /yourpath 参数说明: -a? :扫描所有在 /etc/mtab 里头已經 mount 的具有 quota 支持的磁盘 -u? :扫描使用者的文件与目录 -v? :显示扫描过程 -g? :扫描群组使用的文件与目录 [root @test /root ]# quotacheck -uvg /home?????? <==开始扫描 /home 这一个独立磁区的目录 quotacheck: Scanning /dev/hda3 [/home] done????? <==显示/home 磁区为 /dev/hda3 ! quotacheck: Checked 35 directories and 342 files <==扫描完毕,有 35 目录与342 文件。 [root @test /root ]# ls -l /home????????? <==查看一下 /home 这个目录底下,两个文件产生了! -rw-------??? 1 root???? root???????? 7168 May? 6 18:37 aquota.group -rw-------??? 1 root???? root???????? 7168 May? 6 18:37 aquota.user 这个指令主要的目的在扫描某一个磁盘的 quota 空间,他会针对该磁盘进行扫描,并且,由于该磁盘若持续运作时,可能扫描的过程中,文件可能