⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0420quota.htm

📁 鸟哥的linux私房菜
💻 HTM
📖 第 1 页 / 共 3 页
字号:
			那么宽限时间就可以很清楚的知道含意是什么了!也就是当您的使用者使用的空间超过了
			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>&lt;==修改恕限时间</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 + -