Gerenciando quotas de disco

Neste artigo, descrevo as funcionalidades do recurso de quotas de disco, uma breve introdução sobre Soft Limit, Hard Limit e Grace Period e um tutorial básico para criação e gerenciamento de quotas.

[ Hits: 83.298 ]

Por: Cristian Alexandre Castaldi em 28/12/2005


Criando e gerenciando quotas



Nesse tópico, abordaremos todos os procedimentos para a criação e gerenciamento de quotas.

Edite o arquivo /etc/fstab:

/dev/sda8    /home   ext3    defaults,usrquota,grpquota      1       2

Crie os arquivos quota.user e quota.group e dê permissão de acesso somente para o root no diretório /home:

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


Estes dois arquivos são os bancos de dados de quotas de usuários e grupos. Nesse exemplo, estamos utilizando quota versão-1, caso alguém esteja usando a versão-2, os nomes dos arquivos devem ser aquota.user e aquota.group. Agora devemos reiniciar o sistema para que as configurações de quota entrem em vigor.

# shutdown -r now

Após a reinicialização do sistema, use o comando quotacheck para inicializar os bancos de dados:

# quotacheck -avug

Adicione as quotas de usuários:

# edquota -u crildo
Disk quotas for user crildo (uid 1000):
Filesystem   blocks   soft     hard     inodes   soft    hard
/dev/sda8    28       9000     10000    7        4000    5000
/dev/sdb2    2740     3000     5000     60       0       0

Adicione as quotas de grupo:

# edquota -g santos
Disk quotas for group santos (gid 1001):
Filesystem   blocks   soft    hard     inodes     soft     hard
/dev/sda8    0        100000  120000   0          0        0
/dev/sdb2    16       300000  350000   0          4        0     

Adicione o tempo limite que os usuários e grupos poderão ter as suas quotas excedidas:

# edquota -t
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem        Block grace period    Inode grace period
/dev/sda8         7days                 7days
/dev/sdb2         7days                 7days

Crie um script para iniciar e verificar o sistema de quotas toda vez que ele é inicializado. Este script deve ser criado no diretório que o sistema utiliza para inicializar os serviços automaticamente, no meu caso é o diretório /etc/init.d:

# vi quotas.sh

#!/bin/bash
# Checa e ativa o sistema de quotas
if [ -x /usr/sbin/quotacheck ]
        then
                echo "Checando sistema de quotas. "
                /usr/sbin/quotacheck -avug
                echo " Sistema de Quotas OK."
        fi
        
if [ -x /usr/sbin/quotaon ]
        then
                echo "Ativando sistema de quotas."
                /usr/sbin/quotaon -avug
         fi

Adicione o comando quotacheck no cron para que seja executado semanalmente:

# crontab -e

0 3 * * 0 /usr/sbin/quotacheck -avug

Ou se preferir, adicione um script no diretório /etc/cron.weekly:

# vi checaquotas.sh

#!/bin/bash
/usr/sbin/quotacheck -avug

Não esqueça de dar permissão de execução ao arquivo:

# chmod 760 checaquotas.sh

Execute o comando "repquota -v /home" para visualizar o relatório de quotas:

# repquota -v /home

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Comandos para gerência de quotas
   3. Criando e gerenciando quotas
   4. Bibliografia
Outros artigos deste autor

Criando, monitorando e terminando processos

Servidor CVS: Instalando, configurando e gerenciando no Linux

Trabalhando com coringas, filtros e expressões regulares no shell

Lynis: Sistema de auditoria e segurança para Linux

Trabalhando com shell e variáveis de ambiente

Leitura recomendada

Checando seu sistema de arquivos com fsck

Ativando suporte ao NTFS no RedHat9 sem recompilar o kernel

Explorando NFS mal configurado

ZFS no GNU/Linux

Lendo partições Linux no Windows

  
Comentários
[1] Comentário enviado por casterman em 29/12/2005 - 15:20h

simples mas poderosp legal, cara

[2] Comentário enviado por agk em 03/01/2006 - 14:18h

Excelente artigo, está de parabéns, não tinha visto ainda um artigo que explicasse tão bem os conceitos de quota e como aplicá-los.

[3] Comentário enviado por canaman em 15/02/2006 - 12:09h

E como faço pra que ao criar um usuário, uma quota padrão seja aplicada?

[4] Comentário enviado por canaman em 15/02/2006 - 12:13h

outra coisa, apaguei sem querar o arquivo quota.user.. tenho mais de 200 usuários e alguns com quotas diferentes, o que faço agora? Sorte que difilmente é preciso reiniciar o servidor, espero que não falte energia tão cedo

[5] Comentário enviado por juliaojunior em 27/10/2006 - 13:40h

kara, ou +-iniciante e fiquei 'boiando'.

[6] Comentário enviado por aps167 em 28/05/2007 - 11:00h

você sabe me dizer qual é comando que vejo o quanto do hd já foi usado, ou seja oq eunto do hd já tem dados gravados.?

[7] Comentário enviado por crildo em 28/05/2007 - 11:20h

O comando df mostra o quanto de espaço de disco está sendo usado.

digite...

# df -v

ou

# df -h


[8] Comentário enviado por rodrigo.vizu em 08/04/2011 - 12:04h

Estou tentando configurar o Samba e usar o controle de quotas, estou usando o debian squeeze e quando tento entrar com o comando quotacheck -vagum a mensagem a seguir é apresentada.

quotacheck: Cannot guess format from filename on /dev/sda5. Please specify format on commandline.
quotacheck: Cannot find filesystem to check or filesystem not mounted with quota option.

Se alguem puder ajudar eu agradeço.

[9] Comentário enviado por cordobel em 21/03/2012 - 18:18h

rodrigo.vizu da uma olhada nos detalhes que postei no meu blog.

Mas basicamente basta não criar os arquivos aquota.user e aquota.group ou quota.user e quota.group

o quotacheck -vagumf se encarrega de criá-los. Ele até reclama dos arquivos que não existem, mas funciona.

Agora, pq ta esse erro quando os arquivos já existem???? eu tb não sei, só sei que assim deu certo pra mim.

http://www.cordobel.com/2012/03/ativando-quotas-de-disco-no-debian.html

vlw

[10] Comentário enviado por rgtobr em 08/10/2013 - 14:07h

Como criar um valor de quota padrão (DEFAULT) para novos usuários adicionados ao sistema? Por exemplo: quero que todo novo usuário adicionado ao sistema possua 150MB de espaço disponível por padrão. Onde configuro isto? PS: uso CentOS 6.4


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts