📄 0420quota.htm
字号:
那么宽限时间就可以很清楚的知道含意是什么了!也就是当您的使用者使用的空间超过了
soft limit ,却还没有到达 hard limit 时,那么在这个『宽限时间』之内,
就必需要请使用者将使用的磁碟容量降低到
soft limit 之下!而当使用者将磁碟容量使用情况超过 soft limit
时,『宽限时间』就会自动被启动,而在使用者将容量降低到
soft limit 之下,那么宽限时间就会自动的取消棉!</li></ul>
</div>
</div>
<hr><a NAME="quota_command"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">基本的 quota 指令∶</span><br>
<div class=block1>
在开始进行 quota 的实作之前,我们得来了解一下 quota 要使用的指令棉!基本上分为两种,一种是查询功能
( quota, quotacheck, quotastats, warnquota, repquota ),另一种则是编辑 quota 的内容 (
edquota, setquota ) 。底下我们来谈一谈这些基本的指令吧!<br><br>
<a name="mtab"></a><hr><li><span class=text_import1>/etc/mtab</span></li>
<div class=block2>
怪了!不是说好要说明 quota 相关指令的吗?干嘛提这个档案系统 (filesystem)
实际挂载的记录档?呵呵!要注意了~当我们使用 quota 的时候,基本上,系统会去搜寻∶『
<span class=text_import2>系统上具有 quota 参数的 partition </span>』
所以棉,当我们要使用 quota 的功能时,我们的 filesystem 必须要已经支援 quota
的旗标才行。一般来说,我们是以编辑 /etc/fstab 后,再重新挂载 filesystem
的方法来让系统的 filesystem 支援 quota 的!这个概念可是很重要的喔! ^_^<br><br>
</div>
<a name="quota"></a><hr><li><span class=text_import1>quota</span></li>
<div class=block2>
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>quota [-uvsl] [username]</span>
[root@linux ~]# <span class=term_command>quota [-gvsl] [groupname]</span>
<span class=term_say>参数∶
-u ∶后面可以接 username ,表示显示出该使用者的 quota 限制值。若不接 username
,表示显示出执行者的 quota 限制值。
-g ∶后面可接 groupname ,表示显示出该群组的 quota 限制值。
-v ∶显示每个 filesystem 的 quota 值;
-s ∶可选择以 inode 或磁碟容量的限制值来显示;
-l ∶仅显示出目前本机上面的 filesystem 的 quota 值。
范例∶</span>
<span class=term_hd>范例一∶秀出目前 root 自己的 quota 限制值∶</span>
[root@linux ~]# <span class=term_command>quota -guvs</span>
<span class=term_hd>范例二∶秀出 dmtsai 这个使用者的磁碟配额</span>
[root@linux ~]# <span class=term_command>quota -vs -u dmtsai</span>
<span class=term_say># 注意一下这两个范例,如果您的系统上面尚未有任何的 quota 支援的 filesystem 时,
# 使用这两个范例时,『不会有任何资讯列出来』啦!不要以为发生错误棉!</span>
</pre></td></tr></table>
这个指令仅是使用来『显示(display)』目前某个群组或者某个使用者的
quota 限值!您可以使用来观察一下呦!<br<br>
</div>
<a name="quotacheck"></a><hr><li><span class=text_import1>quotacheck</span></li>
<div class=block2>
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>quotacheck [-avug] [/mount_point]</span>
<span class=term_say>参数∶
-a ∶扫瞄所有在 /etc/mtab 内,含有 quota 支援的 filesystem,加上此参数后,
/mount_point 可不必写,因为扫瞄所有的 filesystem 了嘛!
-u ∶针对使用者扫瞄档案与目录的使用情况,会建立 aquota.user
-g ∶针对群组扫瞄档案与目录的使用情况,会建立 aquota.group
-v ∶显示扫瞄过程的资讯;
-M ∶『强制』进行 quotacheck 的扫瞄。
范例∶</span>
<span class=term_hd>范例一∶将所有的在 /etc/mtab 内,含有 quota 支援的 partition 进行扫瞄</span>
[root@linux ~]# <span class=term_command>quotacheck -avug</span>
quotacheck: Can't find filesystem to check or filesystem not mounted with
quota option.
<span class=term_say># 不要紧张,这是正常的现象~因为您尚未启用 quota 的参数嘛!
# 关于 quota 参数的下达方法,我们会在稍后说明。如果正常的进行扫瞄,会像下面这样∶</span>
[root@linux ~]# <span class=term_command>quotacheck -avug</span>
quotacheck: Scanning /dev/hdb1 [/disk2] done
quotacheck: Checked 3 directories and 4 files
[root@linux ~]# <span class=term_command>ll /disk2</span>
total 32
-rw------- 1 root root 6144 Sep 5 14:56 <span class=term_write>aquota.group</span>
-rw------- 1 root root 6144 Sep 5 14:56 <span class=term_write>aquota.user</span>
drwx------ 2 root root 16384 Jun 25 16:22 lost+found
<span class=term_say># 第一次操作 quotacheck 可能会有一些错误讯息发生,那应该是正常的!
# 如果使用 ls -l 去查阅一下有 quota 支援的那个 mount point ,若有出现
# aquota.group 及 aquota.user ,那应该就是已经建立好了 quota 记录档了!</span>
<span class=term_hd>范例二∶强制扫瞄已挂载的 filesystem</span>
[root@linux ~]# <span class=term_command>quotacheck -avug -m</span>
<span class=term_say># 有些时候,在某些 Linux distributions 上面,进行 quotacheck 时,
# 可能会出现如下的错误讯息∶
# quotacheck: Cannot get quotafile name for /dev/hda3
# quotacheck: Cannot get quotafile name for /dev/hda3
# 果真如此的话,那么你可以如同上面一般,加上 -m 的参数来『强制』扫瞄。
# 也可以手动先建立记录档,然后再扫瞄,如下所示∶</span>
[root@linux ~]# <span class=term_command>touch /disk2/aquota.user; touch /disk2/aquota.group</span>
[root@linux ~]# <span class=term_command>quotacheck -avug</span>
<span class=term_say># 必须要注意的是,我这里是以 /disk2 作为一个测试的 mount point ,
# 您的挂载点不一定会跟鸟哥一样喔!</span>
</pre></td></tr></table>
这这个指令主要的目的在扫瞄某一个磁碟的 quota
空间,他会针对该 partitions 进行扫瞄,并且,由于该磁碟若持续运作时,可能扫瞄的过程中,
档案可能会增减,造成 quota 扫瞄的错误发生,因此,当使用 quotacheck 时,该磁碟将『
<SPAN CLASS=text_import2>自动被设定成为唯读磁区 ( read-only )</span> 』 ;至于扫瞄完毕之后,
扫瞄所得的磁碟空间结果会写入该磁区最顶端。 ( <span class=text_vbird>例如∶在鸟哥的例子中,扫瞄
/disk2 这个 /dev/hdb1 的磁区,如果是初次扫瞄,那么扫瞄完毕之后会产生 aquota.user
与 aquota.group ,会放置在 /disk2/aquota.user 与 /disk2/aquota.group 底下!而如果是建立
quota 后的扫瞄,那么就会更新这两个档案!</span> ) 另外,
Linux 也特别强调 quota 在使用的时候,需要特别注意在 reboot 时,得先将 quota
关闭才好!<br><br>
此外,由于新版的 Linux distribution 在 quota
的设计上似乎有点小问题,有时候无法完整的进行 quotacheck ,发生如同上表的情况,解决的方法就是主动手动的建立
quotafile 即可喔!例如上面的范例二所显示的。<br><br>
</div>
<a name="edquota"></a><hr><li><span class=text_import1>edquota</span></li>
<div class=block2>
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>edquota [-u username] [-g groupname]</span>
[root@linux ~]# <span class=term_command>edquota -t</span> <span class=term_note><==修改恕限时间</span>
[root@linux ~]# <span class=term_command>edquota -p username_demo -u username</span>
<span class=term_say>参数∶
-u ∶后面接帐号名称。可以进入 quota 的编辑画面 (vi) 去设定 username 的限制值;
-g ∶后面接群组名称。可以进入 quota 的编辑画面 (vi) 去设定 groupname 的限制值;
-t ∶可以修改恕限时间 (就是超过 quota 的 soft limit 值后,还能使用硬碟的宽限期限)
-p ∶复制范本。那个 username_demo 为已经存在并且已设定好 quota 的使用者,
意义为『将 username_demo 这个人的 quota 限制值复制给 username 』!
范例∶</span>
<span class=term_hd>范例一∶设定 dmtsai 这个使用者的 quota 限制值</span>
[root@linux ~]# <span class=term_command>edquota -u dmtsai</span>
Disk quotas for user dmtsai (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/hdb1 0 0 0 0 0 0
<span class=term_say># 进入编辑画面后,以 vi 的相关行为进行编辑喔!我们可以看到
# 被编辑的使用者是 dmtsai ,而底下共有七个栏位,每个栏位的意义我们将在
# 底下的说明继续介绍。而假设我们对于 dmtsai 的限制是 30MB 的话,那么∶</span>
Disk quotas for user dmtsai (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/hdb1 0 <span class=term_write>25000</span> <span class=term_write>30000</span> 0 0 0
<span class=term_say># 然后就可以储存后离开棉!</span>
<span class=term_hd>范例二∶将 dmtsai 的 quota 限制值 (30MB) 复制给 vbird1 这个使用者</span>
[root@linux ~]# <span class=term_command>edquota -p dmtsai -u vbird1</span>
<span class=term_hd>范例三∶修订恕限时间</span>
[root@linux ~]# <span class=term_command>edquota -t</span>
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
<span class=term_write> /dev/hdb1 7days 7days</span>
<span class=term_say># 预设的恕限时间是 7 天啦!你当然可以修订时间!</span>
</pre></td></tr></table>
这个指令就是在编辑每一个『个人』或者是『群组』的
quota 数值!通常我们以 edquota -u username 或者是 edquota -g groupname
来编辑个人与群组的 quota 设定值。不过,或许您会觉得一个一个分配似乎很慢的样子!那么您也可以直接
copy 一个人的设定值给其他人,就如同上面第二个例子,利用已经建立好的 dmtsai
来建立 vbird1 这个人的 quota 限额!这个指令可是很重要的呦!
另外,范例一当中出现的那七个栏位代表的意义我们得要谈一谈啊∶
<ul>
<li><span class=text_import1>filesystem</span>∶<br>
代表这个 quota 是针对哪一个 partition 的意思。以范例一的情况来说,指的是 /dev/hdb1 棉!
也就是 /disk2 那个目录底下的 quota 限制值啦!</li><br>
<li><span class=text_import1>blocks</span>∶<br>
这个是目前使用者 dmtsai ( uid 501 ) 在 /dev/hdb1 这个 filesystem
(参考上面一个资讯),所耗掉的磁碟容量,也就是目前的使用掉的空间啦!单位是
Kbytes 喔!<span class=text_import2>这个资讯是 quota 程式自己计算出来的,所以请不要修改他!</span></li><br>
<li><span class=text_import1>soft 与 hard </span>∶<br>
这个是目前的 dmtsai 使用者在这个 filesystem 之内的 quota 限制值!至于 soft 与 hard 的意思就如同
前一节最后面提的那个意思啦!soft 代表的是一个『警告』限值, hard 则是一个『不可超过的限值』,
soft 与 hard 中间的差值则为宽限的数值。而<span class=text_import2>当 soft 与 hard 数值为
0 的时候,表示『没有限制』的意思</span>!而数值的单位仍是 Kbytes 喔!</li><br>
<li><span class=text_import1>inodes</span>∶<br>
是目前使用掉 inode 的状态,也是 quota 自己计算出来而得到的,所以不要去变更他。一般而言,
inode 不容易控制,所以您可以不必去限制 inode 呢!</li></ul>
</div>
<a name="quotaon"></a><hr><li><span class=text_import1>quotaon</span></li>
<div class=block2>
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>quotaon [-avug]</span>
[root@linux ~]# <span class=term_command>quotaon [-vug] [/mount_point]</span>
<span class=term_say>参数∶
-u ∶针对使用者启动 quota (aquota.user)
-g ∶针对群组启动 quota (aquota.group)
-v ∶显示启动过程的相关讯息;
-a ∶根据 /etc/mtab 内的 filesystem 设定启动有关的 quota ,若不加 -a 的话,
则后面就需要加上特定的那个 filesystem 喔!
范例∶</span>
<span class=term_hd>范例一∶启动所有的具有 quota 的 filesystem</span>
[root@linux ~]# <span class=term_command>quotaon -auvg</span>
/dev/hdb1 [/disk2]: group quotas turned on
/dev/hdb1 [/disk2]: user quotas turned on
<span class=term_hd>范例二∶仅启动 /disk2 里面的 user quota 设定值∶</span>
[root@linux ~]# <span class=term_command>quotaon -uv /disk2</span>
</pre></td></tr></table>
这个指令是在启动 quota 的!不过,由于这个指令是启动
aquota.group 与 aquota.user 的,所以您就必须要先完成 <a href="#quotacheck">quotacheck</a>
的工作了!然后简单的下达 quotaon -a 即可启动!<br><br>
</div>
<a name="quotaoff"></a><hr><li><span class=text_import1>quotaoff</span></li>
<div class=block2>
<table class="term"><tr><td class="term"><pre>
[root@linux ~]# <span class=term_command>quotaoff [-a]</span>
[root@linux ~]# <span class=term_command>quotaoff [-ug] [/mount_point]</span>
<span class=term_say>参数∶
-a ∶全部的 filesystem 的 quota 都关闭 (根据 /etc/mtab)
-u ∶仅针对后面接的那个 /mount_point 关闭 user quota
-g ∶仅针对后面接的那个 /mount_point 关闭 group quota
范例∶</span>
<span class=term_hd>范例一∶</span>
[root@linux ~]# <span class=term_command>quotaoff -a</span>
</pre></td></tr></table>
这个指令就是关闭了 quota 的限制啦!
</div>
</div>
<hr><a NAME="manual"></a><img src="images/penguin-m.gif" alt="大标题的图示" height="34" width="25" align="middle" /><span class="text_h1">实作 Quota</span><br>
<div class=block1>
Quota 使用的方向很广啦,不过,他一般的用途大概有这些∶
<ul>
<li><span class=text_import2>限制某一群组所能使用的最大磁碟配额 (使用群组限制)</span> ∶<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -