Monitorando memória RAM

Publicado por Sandro Marcell 17/06/2008

[ Hits: 13.477 ]

Homepage: http://sanmarcell.wordpress.com

Download memoria.sh




Simples script que informa ao usuário sobre o alto consumo de memória RAM pelo sistema.

Para executá-lo, basta rodá-lo em segundo-plano e quando o script detectar o alto consumo de RAM, uma janela se abrirá e informará o usuário a respeito.

Para mais detalhes, leia as informações no cabeçalho do script.

Screen que mostra o script em execução:
http://www.vivaolinux.com.br/screenshots/verScreenshot.php?codigo=12320

  



Esconder código-fonte

#!/bin/bash --norc
#
# Simples aviso sobre o alto consumo de memoria RAM.
# Sandro Marcell (sandro_marcell@yahoo.com.br)
#
# Obs.:
# - Este script e executavel somente em modo grafico;
# - Para executa-lo, basta inicializa-lo juntamente com o X ou 
# simplesmente executa-lo em segundo-plano;
# - Ao pressionar o botao 'Fechar' da janela que aparecera, o script
# sera finalizado por completo. Para reativa-lo reinicie a sessao ou
# execute-o novamente em segundo-plano.

# Sinal 'kill' recebido:
trap "break 2 ; exit" 1 2 3 15

# Executavel somente em modo grafico:
[[ -z $DISPLAY ]] && echo "Script executavel somente em modo grafico." && exit 1

# Porcentagem maxima de uso da memoria, antes de emitir aviso:
pct=80
# Tempo (em segundos) para checagem do uso da memoria:
tcm=30
# Tempo (em segundos) de intervalo entre as emissoes dos avisos:
int=10
# Tempo (em segundos) de duracao do aviso na tela:
dur=8

# Determinando valores
_Valores_() {
   # Quantidade de memoria RAM no sistema:
   local -i tram=$(awk '{print $2}' <(sed -u '2!d' <(free -m)))
   # Quantidade de memoria utilizada pelo sistema:
   local -i ramu=$(awk '{print $3}' <(sed -u '2!d' <(free -m)))
   # Porcentagem de memoria utilizada:
   pmu=$((ramu * 100 / tram))
   return $pmu
}

# 1 - Loop de checagem de uso da memoria:
while sleep ${tcm}s
do
   # 2 - Loop de teste e execucao:
   while :
   do
      # Chamando funcao:
      _Valores_      
      # Comparando valores:
      if [ $pmu -gt $pct ]
      then
         # Aviso ao usuario:
         xmessage -buttons Ok:0,Fechar:2 \
         -title "Aviso" -timeout $dur -center \
"Atenção: Há pouca memória RAM disponível no momento.
Faça 'top -u \$USER' e finalize os processos desnecessários
para poder liberar mais memória e evitar lentidão no sistema."

         # Botao 'Fechar' foi pressionado?
         [[ $? == 2 ]] && break 2
         
         # Intervalo para emissao do proximo aviso:
         sleep ${int}s
         continue
      else
         # Refazendo checagem: 
         break
      fi
   done
done
exit
# Fim

Scripts recomendados

Album de fotografias v1.1

Fax Control - Nova versão

Usando Shell para incluir múltiplos usuários no Windows

simplemail.sh

Procura


  

Comentários
[1] Comentário enviado por pintofree em 17/06/2008 - 15:41h

Ola, fiquei na duvida, eu preciso logar em modo texto pra exeutar? poderia incluir mais informações de como rodar esse script ai

[2] Comentário enviado por SMarcell em 17/06/2008 - 20:05h

Não. Este script roda somente em modo gráfico, já que ele utiliza o Xmessage (programinha que faz parte do X), para mostrar os avisos de consumo ao usuário. Para executá-lo, basta num terminal digitar:

$ ./script.sh

ou

$ ./script.sh & (para rodar em segundo plano)

Veja o script em execução:
http://www.vivaolinux.com.br/screenshots/verScreenshot.php?codigo=12320


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts