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

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

Re: [shell-script] Consumo de CPU


From: jimmy
Subject: Re: [shell-script] Consumo de CPU
Date: Tue, 26 Aug 2008 14:47:05 -0300
User-agent: Mutt/1.4.2.3i

_______________________________________________________________________________

usando mais ou menos o seu script fiz um assim:

var=$(top -b -d 0.5 -n2 | grep -o "Cpu(s):.*%sy" | tail -1)
var=(${var})
user=${var[1]/\%us,/}
sys=${var[2]/\%sy/}
total=$(bc <<< "$user + $sys")
echo '#cpu = '$total


também não conheço uma forma boa de extrair essa informação usando apenas os
recursos do sistema

_______________________________________________________________________________
On Tue, Aug 26, 2008 at 04:01:06PM -0000, fernando_gottlieb wrote:
> Olá pessoal.
> Estive procurando uma maneira de obter o consumo de CPU e esbarrei em
> características do top, a primeira leitura é sempre a mesma.
> Continuando a procura por outra forma de obter este resultado,
> encontrei vários trechos de códigos mas nenhum conclusivo.
> Depois de algumas tentativas, consegui o que segue abaixo.
> Espero que ajude alguém.
> Gostaria, se possivel, de pedir sugestões para otimizá-lo.
> Segue o código:
> 
> ### Escreve dados sobre uso do processador
> # Obtem duas leituras do comando top (top -b -d 0.5 -n2)
> # Separa apenas as linhas onde aparece o uso da cpu (| grep 'Cpu(s)')
> # Retira as strings contidas no inicio do texto contando dois espacos
> (| cut -f2- -d ' ')
> # Separa os dois primeiros parametros cortando os primeiros 18
> caracteres (| cut -c1-18)
> # Substitui as strings %, u, s e y por espacos, deixando apenas as
> virugulas (| tr '%usy' ' ')
> var=$(top -b -d 0.5 -n2 | grep 'Cpu(s)' | cut -f2- -d ' ' | cut -c1-18
> | tr '%usy' ' ')
> # Obtem o dado anterior a terceira virgula = user
> user=$(echo $var | cut -d, -f3)
> # Obtem o dado anterior a quarda virgula = sys
> sys=$(echo $var | cut -d, -f4)
> # Depois de obter o uso de cpu para usuario (%us = $user) e sistema
> (%sy = $sys)
> # faz a soma das variaveis usando bc (basic calculator) retirando o
> numero sem o ponto
> total=$(echo "$user + $sys" | bc | cut -d. -f1)
> echo '#cpu = '$total
> 
> Abraços
> 
> Fernando
> 
> 
> 
> ------------------------------------
> 
> ---------------------------------------------------------------------
> 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: address@hidden
> ---------------------------------------------------------------------
> 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
> 
_______________________________________________________________________________


reply via email to

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