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:
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 quantidade de arquivos! Ate la
!
* 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
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