Gera estatísticas de consumo de memória e cpu.

Publicado por Alessandro Dias 09/04/2007

[ Hits: 18.635 ]

Download gera_estatistica_serv-01.sh




Gera estatísticas de consumo de memória e cpu, registrando em um arquivo.

Pode-se fazer um script para plotar esses pontos em um gráfico. Em breve publicarei um script PHP para fazer isso.

  



Esconder código-fonte

#!/bin/bash
#
###############################################################################
#  Script GERA_ESTATISTICAS DIARIAS v1.0                                      #
#                                                                             #
#  Autor: Alessandro Dias                                                     #
###############################################################################
#
IP="192.168.0.1"
BASEDIR=/var/www/html/estatisticas

clear
echo "*********************************************************************************************"
echo "*                                 Programa GERA_ESTATISTICAS V1.0                           *"
echo "*********************************************************************************************"
echo "Autor: Alessandro Dias"
echo "---------------------------------------------------------------------------------------------"

if [ "$IP" != "" -a "$IP" != " " ]; then 

   CPUIDLE=`snmpget -v 3 -u alessandro -l authPriv -a MD5 -A senhaauth -x DES -X senhapriv $IP "ssCpuIdle.0" |cut -d "=" -f 2 |cut -d ":" -f 2`
   CPUUSER=`snmpget -v 3 -u alessandro -l authPriv -a MD5 -A senhaauth -x DES -X senhapriv $IP "ssCpuUser.0" |cut -d "=" -f 2 |cut -d ":" -f 2`
   CPUSYS=`snmpget -v 3 -u alessandro -l authPriv -a MD5 -A senhaauth -x DES -X senhapriv $IP "ssCpuSystem.0" |cut -d "=" -f 2 |cut -d ":" -f 2`
   CPUUSED=`expr 100 \- $CPUIDLE`

   echo -e "ip=\"$IP\"\n"

   echo "cpu.idle=$CPUIDLE %"
   echo "cpu.user=$CPUUSER %"
   echo "cpu.sys=$CPUSYS %"
   echo -e "cpu.used=$CPUUSED %\n"

   MEMTOT=`snmpget -v 3 -u alessandro -l authPriv -a MD5 -A senhaauth -x DES -X senhapriv $IP "memTotalReal.0" |cut -d "=" -f 2 |cut -d ":" -f 2`
   MEMFREE=`snmpget -v 3 -u alessandro -l authPriv -a MD5 -A senhaauth -x DES -X senhapriv $IP "memAvailReal.0" |cut -d "=" -f 2 |cut -d ":" -f 2`
   MEMUSED=`expr $MEMTOT \- $MEMFREE`
   MEMUSED_PERC=`expr $MEMUSED \* 100 \/ $MEMTOT`

   MEMSHARED=`snmpget -v 3 -u alessandro -l authPriv -a MD5 -A senhaauth -x DES -X senhapriv $IP "memShared.0" |cut -d "=" -f 2 |cut -d ":" -f 2`
   MEMBUFFER=`snmpget -v 3 -u alessandro -l authPriv -a MD5 -A senhaauth -x DES -X senhapriv $IP "memBuffer.0" |cut -d "=" -f 2 |cut -d ":" -f 2`
   MEMCACHED=`snmpget -v 3 -u alessandro -l authPriv -a MD5 -A senhaauth -x DES -X senhapriv $IP "memCached.0" |cut -d "=" -f 2 |cut -d ":" -f 2`

   MEMUSED_BUF=`expr $MEMUSED \- $MEMSHARED \- $MEMBUFFER \- $MEMCACHED`
   MEMUSED_BUF_PERC=`expr $MEMUSED_BUF \* 100 \/ $MEMTOT`

   echo "mem.tot=$MEMTOT KB"
   echo "mem.free=$MEMFREE KB"
   echo "mem.used=$MEMUSED KB"
   echo "mem.used.perc=$MEMUSED_PERC %"
   echo "mem.shared=$MEMSHARED KB"
   echo "mem.buffer=$MEMBUFFER KB"
   echo "mem.cached=$MEMCACHED KB"
   echo "mem.used-buf/cache=$MEMUSED_BUF KB"
   echo "mem.used-buf/cache.perc=$MEMUSED_BUF_PERC %"

   DIA=`date +%d`
   DIA_SEM=`date +%a`
   MES=`date +%b`
   ANO=`date +%Y`
   HORA=`date +%k`

   if [ "$HORA" == "0" -o "$HORA" == "00" -o "$HORA" == "24" ]; then
      rm -f $BASEDIR/diaria/$IP/$DIA/pts_cpu
      rm -f $BASEDIR/diaria/$IP/$DIA/pts_mem
      rm -f $BASEDIR/diaria/$IP/$DIA/pts_mem_buf
      rm -f $BASEDIR/diaria/$IP/$DIA/rangex
      rm -f $BASEDIR/diaria/$IP/$DIA/graph.php
   fi

   if [ ! -d $BASEDIR/diaria/$IP/$DIA ]; then 
      mkdir -p $BASEDIR/diaria/$IP/$DIA
      chmod 777 $BASEDIR/diaria/$IP/$DIA
   fi

   if [ ! -f $BASEDIR/diaria/$IP/$DIA/pts_cpu ]; then 
      touch $BASEDIR/diaria/$IP/$DIA/pts_cpu
      chmod 666 $BASEDIR/diaria/$IP/$DIA/pts_cpu
   fi

   if [ ! -f $BASEDIR/diaria/$IP/$DIA/pts_mem ]; then 
      touch $BASEDIR/diaria/$IP/$DIA/pts_mem
      chmod 666 $BASEDIR/diaria/$IP/$DIA/pts_mem
   fi

   if [ ! -f $BASEDIR/diaria/$IP/$DIA/pts_mem_buf ]; then 
      touch $BASEDIR/diaria/$IP/$DIA/pts_mem_buf
      chmod 666 $BASEDIR/diaria/$IP/$DIA/pts_mem_buf
   fi

      echo "$HORA,$CPUUSED" >> $BASEDIR/diaria/$IP/$DIA/pts_cpu
      echo "$HORA,$MEMUSED_PERC" >> $BASEDIR/diaria/$IP/$DIA/pts_mem
      echo "$HORA,$MEMUSED_BUF_PERC" >> $BASEDIR/diaria/$IP/$DIA/pts_mem_buf

   if [ ! -f $BASEDIR/diaria/$IP/$DIA/rangex ]; then 
      echo "24,18,12,12,100,100,1,1,/,$IP,$DIA/$MES/$ANO ($DIA_SEM)" > $BASEDIR/diaria/$IP/$DIA/rangex
      chmod 666 $BASEDIR/diaria/$IP/$DIA/rangex
   fi

   if [ ! -f $BASEDIR/diaria/$IP/$DIA/graph.php ]; then 
      cp -f $BASEDIR/diaria/graph.php $BASEDIR/diaria/$IP/$DIA/
      chmod 666 $BASEDIR/diaria/$IP/$DIA/graph.php
   fi

else
   echo -e "\nSINTAXE CORRETA: \n ./gera_estatisticas.sh <IP>\n"
fi
echo -e "---------------------------------------------------------------------------------------------\n"


Scripts recomendados

Criando Máquina Virtual

Instalador de Código Fonte - Linha de Comando

pptd - Simples daemon para controle de conexões pptp.

Front-end para administração do Samba

Filtrando processos facilmente com psaux ( ps aux + grep + wc -l)


  

Comentários
[1] Comentário enviado por diaspcf em 07/05/2007 - 15:20h

Caro Usuário,
Tente pegar o script a partir do código fonte, pois parece que o link está quebrado.
Obrigado.

[2] Comentário enviado por alexpfo em 18/05/2010 - 12:32h

pode me mandar este arquivo ainda. meu mail é alexandre@aroinformatica.com.br


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts