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

Publicado por Alessandro Dias 09/04/2007

[ Hits: 18.964 ]

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

Cluster multi-master com MariaDB 10.1 + Galera

Enviando comandos para máquinas da rede

Gera estatísticas de tráfego de pacotes nas interfaces de um servidor linux via SNMPv3.

Pequeno, simples mas interessante chat desenvolvido totalmente em shell script.

Script de backup para fita DAT


  

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