Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Gráfico de uso de um diretório

Colaboração: Everson Roberto Caratti

Data de Publicação: 02 de maio de 2011

Aproveitando a dica do Noilson Caio Teixeira de Araújo gostaria de dar a minha contribuição também, com um script que indica o gráfico de uso de um diretório.

dug.sh

(download do script)

  #!/bin/bash
  #DESCRICAO: dug.sh => Grafico do uso de um diretorio
  # sintaxe:
  #         use: ~/dug.sh [diretorio/ [nro_itens]]
  # onde:
  #         diretorio e' onde deve ser executado o du e nro_itens e' qdo um diretorio
  #         com muitos itens (subdiretorio) pode se optar por exibir os 10 maiores.
  
  vtmp=/tmp/x$$.1
  ltmp=/tmp/x$$.2
  xtmp=/tmp/x$$.3
  
  [ "$1" = "" ] && dir="./" || dir="$1"
  [ "$2" = "" ] && mai=15 || mai=$2
  
  fracao_tamanho() {
  [ $(echo "$v > 1000" | bc -l) -eq 1 ] && \
  v=$(echo "scale=2; $v/1000" | bc -l) && \
  b="Mb"
  [ $(echo "$v > 1000" | bc -l) -eq 1 ] && \
  v=$(echo "scale=2; $v/1000" | bc -l) && \
  b="Gb"
  [ $(echo "$v > 1000" | bc -l) -eq 1 ] && \
  v=$(echo "scale=2; $v/1000" | bc -l) && \
  b="Tb"
  }
  
  echo "consultado diretorios de $dir ..."
  du --max-depth=1 $dir 2>/dev/null | sort -n | tail -n $mai > $xtmp
  cem=$(tail -n 1 $xtmp | awk '{print $1}')
  v=$cem  ; b="Kb"
  fracao_tamanho
  tit="Uso+de+$dir:${v}$b"
  egrep -v ^0 $xtmp | \
  while read a ; do
        v=$(echo $a | awk '{print $1}') ; b="Kb"
        c=$(echo "scale=2; $v*100/$cem" | bc -s)
        fracao_tamanho
  
        # os echo's dvem ir aqui para nao incluir a ultima linha
        echo "$l2" > $ltmp
        echo "$v2" > $vtmp
        l="$(echo $a | awk '{print $2}')($c%+${v}$b)"
        [ "$l2" = "" ] && l2="$l" || l2="$l2|$l"
        [ "$v2" = "" ] && v2="$c" || v2="$v2,$c"
  done
  uso=$(cat $vtmp)
  leg=$(cat $ltmp)
  rm $vtmp $ltmp $xtmp
  url="http://chart.apis.google.com/chart?chs=700x300&cht=p&chd=t:$uso&chl=$leg&chtt=$tit"
  #firefox "$url"
  wget "$url" -O $xtmp.jpg 2>/dev/null
  #visualizador="firefox"
  visualizador="display"
  [ -f $xtmp.jpg ] && $visualizador $xtmp.jpg || echo "Nao gerou o grafico!"
  rm $xtmp.jpg
  exit 0

Veja um exemplo de imagem criada com este script:

Veja a relação completa dos artigos de Everson Roberto Caratti

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 2.96/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (946 votos)

Opinião dos Leitores

Alex
09 Mai 2011, 20:41
Excelente dica, já está em uso aqui seu script
Sandro Soares
02 Mai 2011, 11:05
Realmente. Ficou fantastico, excelente dica.

Até breve.
noilson caio
02 Mai 2011, 07:11
Massa, ficou bom.
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

As Palavras Mais Comuns da Língua Inglesa (2ª edição)