Obrigado, Júlio mas o problema é que eu tenho um arquivo com usuários e tamanho de arquivos em bytes e ainda não consigo somar todos os arquivos para cada usuario.
# more du.home.tmp admin 5 admin 1 guest 10 user9 5 user9 3 user10 4 Ou seja: o admin teria 6; guest: 10; user9: 8 e user10: 4 em seus respectivos somatórios mas dessa maneira a minha saída ficou assim. Total de uso em disco do usuario admin em bytes: 0 Total de uso em disco do usuario guest em bytes: 6 Total de uso em disco do usuario user9 em bytes: 10 Total de uso em disco do usuario user10 em bytes: 8 A primeira ocorrência aparece com 0 e as seguintes com os valores errados e a última dançou na estória. Eu já tinha caido nesse erro também mas não consegui sair dele. abraço, Roberto On 8/25/06, Julio C. Neves <[EMAIL PROTECTED]> wrote: > > 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 <[EMAIL PROTECTED]>: > > > > > 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] > > > [As partes desta mensagem que não continham texto foram removidas] --------------------------------------------------------------------- Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. --------------------------------------------------------------------- Sair da lista: [EMAIL PROTECTED] --------------------------------------------------------------------- Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net --------------------------------------------------------------------- Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
