Definindo quota por tamanho de arquivos

Depois que fizemos toda a instalação do pacote e habilitamos o suporte a quota na partição, é hora de definir as quotas para os usuários. As quotas podem ser definidas de duas maneiras:

Por tamanho (blocks)
Por quantidade (inodes)

Os valores dos limites das quotas são baseados em três parâmetros:

soft limits – número máximo de blocos de 1kb que um usuário ou grupo pode alocar no disco; ou ainda, número máximo de inodes (arquivos) que um usuário ou grupo pode criar. Usuários ou grupos podem ultrapassar esse limite por um período de tempo.
hard limits – número máximo de blocos de 1kb que um usuário ou grupo pode alocar no disco; ou ainda, número máximo de inodes (arquivos) que um usuário ou grupo pode criar. Ao contrário de soft limits, esse valor nunca poderá ser ultrapassado.
grace period –  a tradução desse nome, ‘período de graça’ é engraçada😛 . Bem, falando sério… o grace period é o tempo que usuário ou grupo pode ultrapassar de seu soft limit. É um tipo de bônus; porém se o usuário ou grupo não apagar os arquivos até o final do grace period, o sistema não alocará mais espaço em disco para esse usuário ou grupo. O padrão do grace period é de 7 dias.

Vamos editar quotas para o usuário neo. O comando para edição de quotas é o edquota. Ele abre um editor de textos (no meu caso, o vim) para editar a quotas:

# edquota neo

A saída do arquivo, quando executamos o comando edquota, é similar a tabela abaixo:

Tabela comando edquotaVamos definir para o neo um total de 20mb (soft limit) e um limite máximo de 30mb (hard limit). O arquivo fica assim:

Disk quotas for user neo (uid 1002):
Filesystem                   blocks       soft       hard     inodes     soft     hard
/dev/sda6                        24      20000      30000          6        0        0

Lembrando que no arquivo, não alteramos a coluna blocks e nem a coluna inodes, pois elas contém blocos e inodes que já foram utilizados pelo usuário. Após editar os valores, salvar o arquivo e sair. Para consultar as quotas do usuário, usamos o comando quota:

# quota -u neo
Disk quotas for user neo (uid 1002):
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/sda6      24   20000   30000               6       0       0

Bom, vamos testar as quotas do neo… vamos logar como neo e criar alguns arquivos para testar se a quota esta funcionando mesmo ou não:

# su – neo

$ echo “Eu sou o neo” > identidade.txt; while true; do
> cat identidade.txt >> matrix.txt; cat matrix.txt >> identidade.txt;
> done

O script deve ficar rodando até o usuário lotar o disco:

$ echo “Eu sou o neo” > identidade.txt; while true; do
> cat identidade.txt >> matrix.txt; cat matrix.txt >> identidade.txt;
> done

sda6: warning, user block quota exceeded.
sda6: write failed, user block limit reached.
cat: erro de escrita: Disk quota exceeded

Consultando o tamanho dos arquivos do neo:

$ du -hs *.txt
17M     identidade.txt
13M     matrix.txt

Eita que o neo já não pode mais escrever no disco… vamos consultar novamente a quota dele:

# quota -u neo
Disk quotas for user neo (uid 1002):
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/sda6   30000*  20000   30000   6days       8       0       0

Isso quer dizer que o neo só pode voltar a escrever novamente no disco quando apagar um arquivo… Esse negócio de quota funciona mesmo! Caso queira um relatório geral, usamos o comando repquota:

# repquota -av
*** Report for user quotas on device /dev/sda6
Block grace time: 7days; Inode grace time: 7days
Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
———————————————————————-
root      —   71368       0       0              4     0     0
ivani     —      16       0       0              4     0     0
trinity   —      24       0       0              6     0     0
neo       +-   30000   20000   30000  6days       8     0     0
smith     —      16       0       0              4     0     0
nix       —      16       0       0              4     0     0

A opção -av do comando repquota é para exibir o relatório com detalhes do status de quota de todos usuários e todas partições que tiverem quota habilitada.

No próximo post, vamos ver como definir a quota por quantidade de arquivos! Ate la🙂 !

Depois que fizemos toda a instalação do pacote e habilitamos o suporte a quota na partição, é hora de definir as quotas para os usuários. As quotas podem ser definidas de duas maneiras:
* Por tamanho (blocks)
* Por quantidade (inodes)
Os valores dos limites das quotas são baseados em três parâmetros:
* soft limits – número máximo de blocos de 1kb que um usuário ou grupo pode alocar no disco; ou ainda, número máximo de inodes (arquivos) que um usuário ou grupo pode criar. Usuários ou grupos podem ultrapassar esse limite por um período de tempo.
* hard limits – número máximo de blocos de 1kb que um usuário ou grupo pode alocar no disco; ou ainda, número máximo de inodes (arquivos) que um usuário ou grupo pode criar. Ao contrário de soft limits, esse valor nunca poderá ser ultrapassado.
* grace period –  a tradução desse nome, ‘período de graça’ é engraçada😛 . Bem, falando sério… o grace period é o tempo que usuário ou grupo pode ultrapassar de seu soft limit. É um tipo de bônus; porém se o usuário ou grupo não apagar os arquivos até o final do grace period, o sistema não alocará mais espaço em disco para esse usuário ou grupo. O padrão do grace period é de 7 dias.
Vamos editar quotas para o usuário neo. O comando para edição de quotas é o edquota. Ele abre um editor de textos (no meu caso, o vim) para editar a quotas:
# edquota neo
A saída do arquivo, quando executamos o comando edquota, é similar a tabela abaixo:
[tabela estrutura do edquota]
Vamos definir para o neo um total de 20mb (soft limit) e um limite máximo de 30mb (hard limit). O arquivo fica assim:
Disk quotas for user neo (uid 1002):
Filesystem                   blocks       soft       hard     inodes     soft     hard
/dev/sda6                        24      20000      30000          6        0        0
Lembrando que no arquivo, não alteramos a coluna blocks e nem a coluna inodes, pois elas contém blocos e inodes que já foram utilizados pelo usuário. Após editar os valores, salvar o arquivo e sair. Para consultar as quotas do usuário, usamos o comando quota:
# quota -u neo
Disk quotas for user neo (uid 1002):
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/sda6      24   20000   30000               6       0       0
Bom, vamos testar as quotas do neo… vamos logar como neo e criar alguns arquivos para testar se a quota esta funcionando mesmo ou não:
# su – neo
$ echo “Eu sou o neo” > identidade.txt; while true; do
> cat identidade.txt >> matrix.txt; cat matrix.txt >> identidade.txt;
> done
O script deve ficar rodando até o usuário lotar o disco:
$ echo “Eu sou o neo” > identidade.txt; while true; do
> cat identidade.txt >> matrix.txt; cat matrix.txt >> identidade.txt;
> done
sda6: warning, user block quota exceeded.
sda6: write failed, user block limit reached.
cat: erro de escrita: Disk quota exceeded
Consultando o tamanho dos arquivos do neo:
$ du -hs *.txt
17M     identidade.txt
13M     matrix.txt
Eita que o neo já não pode mais escrever no disco… vamos consultar novamente a quota dele:
# quota -u neo
Disk quotas for user neo (uid 1002):
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/sda6   30000*  20000   30000   6days       8       0       0
Isso quer dizer que o neo só pode voltar a escrever novamente no disco quando apagar um arquivo… Esse negócio de quota funciona mesmo! Caso queira um relatório geral, usamos o comando repquota:
# repquota -av
*** Report for user quotas on device /dev/sda6
Block grace time: 7days; Inode grace time: 7days
Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
———————————————————————-
root      —   71368       0       0              4     0     0
ivani     —      16       0       0              4     0     0
trinity   —      24       0       0              6     0     0
neo       +-   30000   20000   30000  6days       8     0     0
smith     —      16       0       0              4     0     0
nix       —      16       0       0              4     0     0
A opção -av do comando repquota é para exibir o relatório com detalhes do status de quota de todos usuários e todas partições que tiverem quota habilitada.
No próximo post, vamos ver como definir a quota por tamanho! Ate la🙂 !

1 Response to “Definindo quota por tamanho de arquivos”


  1. 1 HUGO LUIZ 10/06/2011 às 11:39 AM

    Boa rapaz! Belo trabalho! Só tenho que agradecer mesmo. Obrigado


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




Follow Nix on WordPress.com
novembro 2009
S T Q Q S S D
« out   dez »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Flickr Photos

Fast-flying Falcon

Mais fotos

%d blogueiros gostam disto: