Cotas no Linux (remove duplicatas) [Guia Básico]

Existe a possibilidade de habilitarmos cotas no Linux para gerenciarmos melhor o uso do espaço disponível em disco. Este recurso é especialmente importante em ambientes multiusuários, servidores de Web, servidores de arquivos, servidores de e-mail, etc.

No gerenciamento de cotas é possível definirmos a quantidade de espaço em disco para cada usuário ou grupo de usuários.

É preciso habilitar o gerenciamento de cotas antes de utilizarmos este recurso.
Veja os passos a seguir:

1) É preciso que o suporte a quotas esteja compilado no Kernel.
2) Edite o arquivo /etc/fstab e adicione o gerenciamento de cota para usuário (usrquota) e para grupo (grpquota) no dispositivo desejado.

$ vi /etc/fstab
/dev/hda6 /home ext2 defaults,usrquota,grpquota 1 2

3) Crie o arquivo quota.user e quota.group no diretório /home com o comando “quotacheck –cug” e configure as permissões de leitura e escrita somente para o superu­suário. Em algumas distribuições estes arquivos têm os nomes aquota.user e aquota.group. Estes dois arquivos serão os bancos de dados para as quotas de usuário e grupo respectivamente.

Para criar os arquivos de cotas manualmente:

$ touch /home/quota.user
$ touch /home/quota.group
$ chmod 600 /home/quota.user
$ chmod 600 /home/quota.group

Ou

$ quotacheck -cug

4) Execute o comando quotacheck –avug para iniciar o banco de dados recém-criado.

5) Verifique se o banco de dados foi iniciado. Os arquivos quota.user e quota.group não devem ter tamanho zero.

$ ls –lga /home

6) Habilite o serviço de quotas:

$ quotaon -a

7) Tenha certeza de que o serviço de quotas é habilitado no boot. Se não existir o arquivo /etc/rc.d/quotas, crie um arquivo de script:

$ vi /etc/rc.d/quotas
#!/bin/bash
/sbin/quotaon -avug

Altere as permissões para 755:

$ chmod 755 /etc/rc.d/quotas

Crie o link simbólico para o arquivo de quotas para o runlevel 3 e runlevel 5:

$ ln –s /etc/rc.d/quotas /etc/rc.d/rc3.d/S20quotas
$ ln –s /etc/rc.d/quotas /etc/rc.d/rc5.d/S20quotas

8) Faça checagem do sistema de quotas uma vez por semana colocando o comando quotacheck no cron do root:

$ crontab –e
0 3 * * 0 /sbin/quotacheck –avug

Uma vez feitos estes passos, o sistema de quotas poderá ser utilizado.

Existem quatro tipos de limites de quotas a saber:

  • Limite Físico por Usuário (user hard limit): O limite físico é a quantidade total de espaço em disco que um usuário pode ter. O usuário não poderá gravar mais nada quando este limite for alcançado;
  • Limite Leve por Usuário (user soft limits): O limite leve funciona como uma área de aviso. Quando este limite é atingido o sistema avisa o usuário que seu espaço em disco está acabando. O usuário poderá fazer gravações em disco até que o limite físico seja alcançado;
  • Limite Físico por Grupo (group hard limit): O limite físico por grupo define o máximo de espaço em disco que um grupo de usuários possa ter. Se este limite for alcançado, os usuários do grupo não poderão mais efetuar gravações mesmo que haja espaço disponível para um determinado usuário;
  • Limite Leve por Grupo (group soft limit): Tem o mesmo conceito do limite físico por grupo, mas funciona como uma área de aviso.

Ainda podemos configurar no gerenciamento de cotas um Período de Graça (grace period) para que um usuário ou grupo que tenha atingido o limite leve possa apagar alguns arquivos e ficar dentro do estabelecido.

Depois que o tempo especificado no período de graça for ultrapassado e nenhuma ação for tomada, o limite leve passa a ser limite físico, impossibilitando os usuários de trabalharem até que a situação seja de fato resolvida. Este limite pode ser em minutos, horas, dias, semanas e até meses.

Vejamos agora os comandos para gerência de quotas:

Comando quota

O comando quota mostra as quotas de espaço em disco configuradas para um determinado usuário ou grupo e o espaço utilizado.

Suas opções mais frequentes são:

  • -u: Mostra a cota definida para um determinado usuário (padrão);
  • -g: Mostra a cota definida para um determinado grupo;
  • -q: Mostra somente quando a cota for excedida;
  • -v: Mostra as quotas mesmo que nenhuma esteja definida.

Exemplo:

$ quota –v uira
Disk quota for user uira (uid 502):
Filesystem blks quota limit grace files quota limit grace
/dev/hda6 18320 19000 20000 58 0 0

Neste exemplo o usuário uira está usando 18320 blocos. O limite leve são 19000 blocos e o limite físico são 20000 blocos.

Somente o superusuário pode ver a cota de outros usuários. Um usuário comum pode ver a sua própria cota e a cota do grupo de que é membro.

Comando quotaon

O comando quotaon habilita o gerenciamento de quotas em um dispositivo previamente configurado.

As opções mais frequentes são:

  • -a: Habilita o gerenciamento de quotas para todos os dispositivos configurados para controle de quotas no arquivo /etc/fstab;
  • -g: Habilita o gerenciamento de quotas para grupos em um determinado dispositivo;
  • -u: Habilita o gerenciamento de quotas para usuários em um determinado dispositivo;
  • -v: Mostra todos os dispositivos onde o gerenciamento de quotas foi habilitado.

Exemplo:

$ quotaon –avug

Habilita quotas de usuários e grupos para todos os dispositivos configurados para tal em /etc/fstab.

Comando quotaoff

Este comando desabilita o gerenciamento de quotas em determinados dispositivos.

As opções deste comando são semelhantes ao comando quotaon.

Exemplo:

$ quotaoff –gu /dev/hda6

Comando quotacheck

Este comando faz uma varredura em um determinado dispositivo e constrói os arquivos de banco de dados de quotas. É importante que este comando seja executado com certa regularidade para que o banco de quotas esteja fiel à realidade do sistema de arquivos.

As opções deste comando são:

  • -a: Faz a varredura de todos os dispositivos configurados para o gerenciamento de quotas no arquivo /etc/fstab e constrói a base de dados para usuários e grupos;
  • -g grupo: Constrói a base de dados de quotas para um determinado grupo;
  • -u usuário: Constrói a base de dados de quotas para um determinado usuário;
  • -v: Mostra todos os procedimentos executados pelo quotacheck.

Exemplo:

$ quotaoff –a
$ quotacheck –aug
$ quotaon

Se você não desabilitar as quotas para um determinado dispositivo ao executar o comando quotacheck, as informações coletadas ficarão em memória, mas os arquivos com a base de dados não serão atualizados.

Comando edquota

Este comando edquota edita quotas para usuários e grupos. Ele utiliza o editor de texto vi ou outro editor de textos padrão para configurar as quotas de disco. O arquivo de configuração de quotas poderá parecer um pouco estranho, mas sua configuração é simples.

As opções disponíveis para o comando são:

  • -g: Se a opção –g for especificada, o edquotas deverá receber como parâmetro o nome do grupo;
  • -u: Esta é a opção padrão, para editar as quotas do usuário;
  • -p usuárioexemplo: Esta opção é chamada de proto-usuário. Você pode utilizar esta opção para copiar as configurações de um usuário padrão para um outro usuário;
  • -t: Esta opção é para configurar o período de graça para os usuários ou determinado grupo. Deve ser combinada com a opção –u ou –g.

Exemplo:

$ edquota –u uira
Quotas for user: uira
/dev/hda6: blocks in use: 136, limits (soft = 19000, hard = 20000)
Inodes in use: 132, limits (soft = 0, hard = 0)

Neste exemplo o limite leve (soft) são 19000 blocos e o limite físico (hard) são 20000.

$ edquota –tu
Time units may be: days, hours, minutes, or seconds
Grace period before enforcing soft limits for users:
/dev/hda6: block grace period: 15 days.
File grace period: 7 days

Neste exemplo o período de graça são 15 dias para blocos e 7 dias para arquivos (inodes).

Comando repquota

Este comando cria um relatório das quotas e utilização do disco dos usuários de um determinado dispositivo ou grupo.

As opções deste comando são:

  • -a: Cria um relatório de cotas para todos os dispositivos configurados para gerenciamento de cotas no arquivo /etc/fstab;
  • -u: Esta é a opção padrão, que cria um relatório de utilização por usuários;
  • -g: Esta opção reporta a utilização de cotas por grupo;
  • -v: Cria um cabeçalho descritivo para o relatório.

Exemplo:

$ repquota –va
*** Report for user quotas on /dev/hda6 (/home)
Block limits File limits
User used soft hard grace used soft hard grace
root 718000 0 0 418 0 0

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe