Quota por usuário [RESOLVIDO]

1. Quota por usuário [RESOLVIDO]

Carlos Eduardo Ribas Dinão
cdinao

(usa CentOS)

Enviado em 16/01/2012 - 16:48h

Boa tarde pessoal.

Seguinte! Estou enfrentado um problema com relação a visualização do retorno do comando quota. Utilizo no meu servidor CentOS 5.7. O problema esta sendo que a linha que me interessa a informação esta retornando quebrado e tem distros linux que retornam a informação em uma linha inteira. Obs: estou trabalhando com quota em cima de LVM, e não ponto de montagem padrão /dev/sdx.
Reforço! O problema não esta sendo o sistema de arquivos ou ponto de montagem, é o retorno do comando quota.

Ex01: Este é a informação de retornado que eu não quero.
[root@centos-pdc ~]# quota juaraujo
Disk quotas for user juaraujo (uid 1058):
Filesystem blocks quota limit grace files quota limit grace
/dev/mapper/VG_ROOT-LV_HOME
10 19000 19000 8 0 0

Ex02: Este é a informção de retorno que eu preciso.
[root@centos-pdc ~]# quota juaraujo
Disk quotas for user juaraujo (uid 1058):
Filesystem blocks quota limit grace files quota limit grace
/dev/mapper/VG_ROOT-LV_HOME 10 19000 19000 8 0 0

Alguém saberia me dizer algo? Já alterei resolução da tela em modo texto, mas continua na mesma e acessando o servidor por ssh também apresenta a mesma informação do Ex01.

att
Carlos Dinão
carlosdinao@creapr.org.br


  


2. Re: Quota por usuário [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 17/01/2012 - 12:08h

Vc queria jogar esta linha abaixo para um log?

/dev/mapper/VG_ROOT-LV_HOME 10 19000 19000 8 0 0


3. Quota

Carlos Eduardo Ribas Dinão
cdinao

(usa CentOS)

Enviado em 17/01/2012 - 15:32h

Olá.
Não pretendo jogar para log.
Uma aplicação java que estamos desenvolvendo irá se conectar por ssh ao servidor linux e executar o comando quota...
A linha deveria retornar:
[root@centos-pdc paulino]# quota feribas
Disk quotas for user feribas (uid 1037):
Filesystem blocks quota limit grace files quota limit grace
/dev/mapper/VG_ROOT-LV_DADOS 11802 20000 20000 351 0 0

Em seguida eu faria um filtro com grep + AWK '{print $2,$4}' e o programa java faria os calculas para saber em % de quanto o usuário já usou e quanto ainda resta da quota, mas....
Quando eu simulo o comando quota no terminal...
Alinha retorna:
[root@centos-pdc paulino]# quota feribas
Disk quotas for user feribas (uid 1037):
Filesystem blocks quota limit grace files quota limit grace
/dev/mapper/VG_ROOT-LV_DADOS
11802 20000 20000 351 0 0
Ou seja, linha quebrada, daí não consigo realizar os cálculos.
Emtão quero saber se tem como arrumar este retorno do comando, basicamente isto.
tnks.


4. Re: Quota por usuário [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 17/01/2012 - 16:30h

Acho que entendi, para isso tem q fazer um script que trate as 2 ocorrências. A primeira parte já consegui..daq a pouco posto o script!


5. Quota

Carlos Eduardo Ribas Dinão
cdinao

(usa CentOS)

Enviado em 17/01/2012 - 16:50h

Que bom.
Mas minha dúvida mesmo é se tem no linux alguma configuração de variável de sistema, arquivo.conf algum lugar onde eu pudesse dizer para o linux não quebrar a linha do dispositivo... já até pensei que seja o pacote quota.x86_64 que foi compilado desta maneira para o CentOS e no Debian é exibido a linha do dispositivo por inteiro. Estranho né?


6. Re: Quota por usuário [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 17/01/2012 - 16:55h

Bom, a idéia aqui é vc executar este script com um parâmetro, sendo ele o nome do usuário, por exemplo:
script_quota.sh joao



#!/bin/bash

USER=$1
Q_FILE="/tmp/quota.txt"

quota $USER > $Q_FILE
V1=$(cat $Q_FILE | grep '^/dev/' | grep [0-9])

if [ ! -z "$V1" ]; then

echo $V1 | cut -d" " -f2-
exit 0

fi

cat $Q_FILE | while read line
do

echo "$line" | grep ^[0-9]

done

rm -f $Q_FILE &> /dev/null



Ele criará o arquivo /tmp/quota.txt e irá inserir as informações da saída 'quota usuario' no mesmo!
Em seguida o script verifica se na linha que inicia com "/dev" possui números, no caso afirmativo exibirá na tela somente os números.
Caso a linha que inicia com "/dev" não conter números, então o script faz uma verificação no /tmp/quota.txt linha a linha e verifica qual delas inicia com números, sendo assim os mesmos serão exibidos.
No final de cada execução o script remove o arquivo /tmp/quota.txt.

Aqui funfou, veja se da certo!



7. Quota

Carlos Eduardo Ribas Dinão
cdinao

(usa CentOS)

Enviado em 18/01/2012 - 17:16h

Daeee...
... seguinte...
Li o man do repquota e obtive a resposta de que precisava. Como eu habilitei quota por usuário ou para vários usuário queria além de fazer o cáculo ver também quando foi definido por padrão para cada usuário, mas o comando repquota sem parâmetro retorna muito pouca informação, além de retornar com a linha quebdra como estava sendo meu caso.
Por outro lado quando queria ver a quota configurada para certo usuário tinha que executar o comando edquota para saber quanto foi definido, já que o comando repquota não estava sendo 100% satisfatório, apenas informando a quota utilizada e definida a partir do momento em que o usuário gravava o primeiro bit, se não gravasse nada supostamente não saberia das informações necessárias. Então que li o man do repquota e ví que se colocasse o parâmetro -v é exibido todos os usuários com ou sem quota definido e de todos os dispositivos com a opcao de quota habilitados.
Segue o comando que executei e me informou que precisava:

comando - v <ponto de montagem ou dispositivo> | grep <nome do usuário>
[root@centos-pdc home]# repquota -v /dev/mapper/VG_ROOT-LV_DADOS | grep feribas
feribas -- 9692 15360 15360 296 0 0

Então filtrei com AWK a coluna 3, quantidade em MB utilizados, com a coluna 5, limite da quota. Com estas duas informações consigo calcular em % quando já foi utilizado e quando em % ainda restam. BLZ?

comando - v <ponto de montagem ou dispositivo> | grep <nome do usuário> | awk '{print $coluna inodes,$coluna hard}'
[root@centos-pdc home]# repquota -v /dev/mapper/VG_ROOT-LV_DADOS | grep feribas | awk '{print $3,$5}'
9692 15360



8. Re: Quota por usuário [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 18/01/2012 - 18:52h

Parabáns, vc nao precisou usar a minha solução, mas aprendeu bastante sobre os comandos referemte a quota.
Usuários aqui do VOL são todos feras, da gosto de ver :-)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts