<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>bleno@blog ~$ &#187; quota</title>
	<atom:link href="http://www.bleno.org/blog/tag/quota/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bleno.org/blog</link>
	<description></description>
	<lastBuildDate>Wed, 21 Jul 2010 18:21:43 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Usando Quota no FreeBSD</title>
		<link>http://www.bleno.org/blog/2009/06/usando-quota-no-freebsd/</link>
		<comments>http://www.bleno.org/blog/2009/06/usando-quota-no-freebsd/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 02:09:55 +0000</pubDate>
		<dc:creator>Bleno Vinicius</dc:creator>
				<category><![CDATA[mundo nerd]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[quota]]></category>

		<guid isPermaLink="false">http://www.bleno.org/blog/?p=542</guid>
		<description><![CDATA[Hi,
Quota. Usamos quando quremos limitar o uso do espaço em disco a um determinado usuário. O uso de quota previne o uso indevido dos usuários com relação ao espaço em disco, evitando &#8211; assim &#8211; o esgotamento repentino do espaço de uma determinada partição.
No FreeBSD o sistema de Quota é nativo do sistema, não nessitando [...]]]></description>
			<content:encoded><![CDATA[<p>Hi,</p>
<p style="text-align: justify;">Quota. Usamos quando quremos limitar o uso do espaço em disco a um determinado usuário. O uso de quota previne o uso indevido dos usuários com relação ao espaço em disco, evitando &#8211; assim &#8211; o esgotamento repentino do espaço de uma determinada partição.</p>
<p style="text-align: justify;">No FreeBSD o sistema de Quota é nativo do sistema, não nessitando instalar nenhum outro aplicativo. Necessário  somente habilitar o recurso no kernel.</p>
<p style="text-align: justify;">Adicione a quota no seu kernel, recompile e habilite o sistema de quotas ao sistema (não me aprofundarei na recompilação do kernel, pois, não é o alvo do post).</p>
<blockquote>
<p style="text-align: left;">~#<br />
~# cd /usr/src/sys/i386/conf<br />
~# vi SEUKERNEL</p>
<p>Adicione a opção de cotas no final do arquivo:<br />
options          QUOTA</p>
<p>Recompile o kernel:<br />
~#<br />
~# cd /usr/src/<br />
~# make buildkernel KERNCONF=SEUKERNEL<br />
~# make installkernel KERNCONF=SEUKERNEL</p>
<p>Habilite o sistema de quotas ao sistema:<br />
~#<br />
~# cd /etc/<br />
~# vi rc.conf</p>
<p>Adicione as linhas abaixo no seu rc.conf<br />
enable_quotas=&#8221;YES&#8221;<br />
check_quotas=&#8221;NO&#8221;</p></blockquote>
<p style="text-align: justify;">Pronto! Com o sistema de quota habilitado vamos definir as configurações nas partições e usuários!</p>
<blockquote>
<p style="text-align: justify;">Ah, em check_quotas, neste caso, deixei desabilitado (NO) para optimizar o boot do sistema. O check_quotas, como o próprio nome descreve, serve para checar a integridade dos dados no disco em relação a quota definida em cada usuário. Mas, em um sistema com muitos usuários acaba se tornando uma checagem muito demorado.</p>
</blockquote>
<p style="text-align: justify;">Neste exemplo vamos habilitar a partição /home para o uso de quotas. Neste caso, editamos o /etc/fstab e habilitamos o recurso na partição, depois reinicie o sistema.</p>
<blockquote>
<p style="text-align: left;">~#<br />
~# cd /etc/<br />
~# vi fstab</p>
<p>Adicione o parametro &#8220;userquota&#8221; no /home:<br />
/dev/ad0s1f      /home   ufs   rw,nosuid,userquota   2   2</p>
<p>Reinicie o sistema:<br />
~#<br />
~# shutdown -r now</p></blockquote>
<p>Depois de reinicar o sistema, execute:</p>
<blockquote><p>~#<br />
~# quotacheck -a</p></blockquote>
<p style="text-align: justify;">Com este comando ele cria o arquivo quota.user na raiz de cada partição que você definiu como o sistema de quotas. Este arquivo é resposável pela base de dados das quotas de seus usuários.</p>
<p>O sistema de quotas pode ser configurado de duas formas: por blocos (1KB por bloco) ou inodes (arquivos).  Geralmente usa-se quota por bloco, o que traduz-se no espaço utilizado em disco.</p>
<p style="text-align: justify;">O sistema de quotas também usá dois tipos de limites: o hard e soft. No limite hard, ele não pode ser ultrapassado, ou seja, se você define 50MB de limite hard ao atingir este limite o usuário não poderá mais adicionar dados no disco. Já o limite soft pode ser ultrapassado, por um determinado periodo chamado de &#8220;grace period&#8221;. Neste caso, ao ser ultrapassado o limite soft, o usuário pode utilizar esta &#8220;ultrapassagem de dados&#8221; até o limite do &#8220;grace period&#8221; (por default 1 semana), quando o &#8220;grace period&#8221; expira o limite de quota se torna hard (não podendo ser ultrapassado, até regulariar a situação).</p>
<p style="text-align: justify;">Depois de entendido o sistema de quotas vamos editar e adicionar as regras. Para editar as quotas de um determinado usuário usamos:</p>
<blockquote>
<p style="text-align: justify;">~#<br />
~# edquota -u usuario</p></blockquote>
<p style="text-align: justify;">No nosso exemplo, vamos visualizar as regras de quota para o usuário &#8220;bleno&#8221;, vejamos:</p>
<blockquote>
<p style="text-align: justify;">~#<br />
~# edquota -u bleno<br />
Quotas for user bleno:<br />
/home: kbytes in use: 988, limits (soft = 0, hard = 0)<br />
inodes in use: 4, limits (soft = 0, hard = 0)</p></blockquote>
<p style="text-align: justify;">Veja que os limites de soft e hard estão com 0 KB! Vamos então definir 10MB de limite hard usando blocos (tamanho em disco). Neste caso 10 * 1024 = 10240, ficando nosso arquivo assim:</p>
<blockquote>
<p style="text-align: justify;">~#<br />
~# edquota -u bleno<br />
Quotas for user bleno:<br />
/home: kbytes in use: 988, limits (soft = 0, hard = 10240)<br />
inodes in use: 4, limits (soft = 0, hard = 0)</p></blockquote>
<p style="text-align: justify;">Simples, não? Veja que o sistema de quotas é muito simples de se trabalhar. Vamos por exemplo definir para o usuário &#8220;bleno&#8221; uma quota de 10MB hard, 8MB soft por blocos e 200 arquivos hard e 190 arquivos soft por inodes (arquivos).</p>
<blockquote>
<p style="text-align: justify;">~#<br />
~# edquota -u bleno<br />
Quotas for user bleno:<br />
/home: kbytes in use: 988, limits (soft = 8192, hard = 10240)<br />
inodes in use: 4, limits (soft = 190, hard = 200)</p></blockquote>
<p style="text-align: justify;">Não há segredo. O único &#8220;problema&#8221; é quando temos um sistema com muitos usuários. Fica praticamente inviável editar cada usuário na mão. Mas é possível criar um shell script e gerenciar toda a manipulação de quotas. Vamos exemplificar mais um pouco.</p>
<p style="text-align: justify;">Para copiar as regras de quota do usuário &#8220;bleno&#8221; para &#8220;joao&#8221;:</p>
<blockquote>
<p style="text-align: justify;">~#<br />
~# edquota -p bleno joao</p></blockquote>
<p style="text-align: justify;">Copiar as regras de quota de &#8220;bleno&#8221; para usuários com UID 1000:</p>
<blockquote>
<p style="text-align: justify;">~#<br />
~# edquota -p bleno 1000</p></blockquote>
<p style="text-align: justify;">Copiar as regras de quota de &#8220;bleno&#8221; para usuários com UID entre 1000 e 5000:</p>
<blockquote>
<p style="text-align: justify;">~#<br />
~# edquota -p bleno 1000-5000</p></blockquote>
<p style="text-align: justify;">Assim finalizo este post sobre quota. O assunto é muito mais profundo e extenso. As man pages do comando &#8220;edquota&#8221; é bem explicativo (principalmente se você for criar algum shell script para gerenciar seu sistema de quota), vale a pena dar uma lida!</p>
<p style="text-align: justify;">;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bleno.org/blog/2009/06/usando-quota-no-freebsd/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
