shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] script pra somar bytes do home de usuarios


From: Julio C. Neves
Subject: Re: [shell-script] script pra somar bytes do home de usuarios
Date: Fri, 25 Aug 2006 14:14:44 -0300

Roberto,
não entendi legal e por isso pode ser que a solução não seja essa. Mas vamos
lá:

#!/bin/ksh
#  Nome : Du-home
#  Procedimento : Verificar o uso em kbytes do fs /home por usuario
#
clear

#du -k /home > du.home.txt
#cat du.home.txt |cut -f3 -d/ > user.txt
#cat du.home.txt |cut -f1 > size.txt
#paste user.txt size.txt | sort > du.home.tmp


usuario="a"
BYTE=0
BYTESUM=0

while read USER BYTE
do
    if  [ $USER = $usuario ]
    then
        BYTESUM=$(($BYTESUM + $BYTE))
    else
        echo "Total de uso em disco do usuario $USER em bytes: $BYTESUM"
        BYTESUM=$BYTE
        usuario=$USER
    fi
done < du.home.tmp

De qq forma, me parece que vc está usando muitos arquivos sem necessidade.
Procure armazenar dados temporários em variáveis. Elas foram feitas para
isso...

Abração,
Julio
:wq





2006/8/24, Roberto Alves <address@hidden>:
>
>  Pessoal,
> to tentando fazer um script que crie uma lista de arquivos do home de cada
> usuario em uma maquina, com o du, e some os arquivos por usuario para eu
> saber quanto cada um tá gastando de disco.
> O script não deve ser dificil mas to errando, acho que no algoritimo.
>
>
> explicacao:
> eu criei uma lista "du.home.txt" atraves do comando "du" e tirei as
> colunas
> que não serviam e fiquei apenas com uma coluna de bytes e outra do nome do
> arquivo com o caminho de cada um.
> Esse arquivo limpinho com bytes e files eu chamei de du.home.tmp.
> Quando leio esse arquivo eu tento armazenar o nome do usuario e somar
> todos
> os arquivos de cada user mas nao to conseguindo acertar o processo.
> Eu comentei esses passos pra nao repetir a toda hora nos testes e fiquei
> com
> um arquivinho pequeno e resumido pra eu poder verificar mais facil.
>
> A cara dele é a seguinte:
>
> server1@>more du.home.tmp
> admin  5
> admin  5
> guest   10
> user9  5
> user9  3
>
>
> Alguem pode me dar uma ajuda?
>
>
>
> server1@>cat du_home.sh
> #!/bin/ksh
> #  Nome : Du-home
> #  Procedimento : Verificar o uso em kbytes do fs /home por usuario
> #
> clear
>
> #du -k /home > du.home.txt
> #cat du.home.txt |cut -f3 -d/ > user.txt
> #cat du.home.txt |cut -f1 > size.txt
> #paste user.txt size.txt | sort > du.home.tmp
>
>
> usuario="a"
> BYTE=0
> BYTESUM=0
>
> while :
>         read USER BYTE
>         do
>
>         [ $USER != $usuario ] &&
>           BYTESUM=$(( "$BYTESUM" + "$BYTE" ))
>           echo "Total de uso em disco do usuario $USER  em bytes:
> $BYTESUM"
> ||
>           # > saida.teste
>
>           BYTESUM=$(( "$BYTESUM" + "$BYTE" ))
>           usuario=$USER
>           echo "Total de uso em disco do usuario $USER  em bytes:
> $BYTESUM"
>           # >> saida.teste
>
>         done < du.home.tmp
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>



-- 
Abraços,
Julio
http://www.julioneves.com - Um livro sobre Bash completo e on-line
:wq


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]