El script esta hecho en Perl, y es el siguiente para quien guste usarlo, copiarlo, mejorarlo, loquesea:
#!/usr/bin/perl -w
use strict;
require Linux::Smaps;
my $numero = 1024;
print STDOUT "Inserta el PID del proceso que quieres Analizar :: ";
chomp (my $pid = );
my $map=Linux::Smaps->new($pid);
my @vmas=$map->vmas;
my $a=$map->private_dirty;
my $b = $map->shared_dirty;
my $c = $map->rss;
print STDOUT "-------------- M A P E O D E M E M O R I A -----------\n\n";
print STDOUT "=============================
print "Memoria Privada :: " . $a . " KB " . "\n";
print STDOUT "Memoria Compartida :: " . $b . " KB" . "\n";
print STDOUT "Memoria Virtual Reservada " . ($c/$numero) . " MB" . "\n";
print STDOUT "-----------------------------
my @todo = ( $a, $b );
my $total = 0;
for ( my $contador = 0; $contador
$total = ($todo[$contador]+$total);
};
print STDOUT "El consumo total de ram es :: " . ($total/$numero) . " MB" . "\n";
print STDOUT "-----------------------------
1;
Como el script requiere de un modulo (Linux::Smaps) para encontrar estos
valores, pueden descargarse el modulo usando la shell de CPAN o pueden
ir a la web de CPAN y buscarlo o si quieren, he creado un script pero en
sh (compatible con bash y ksh que son Bourne shells) el script
inicialmente busca si existe el modulo Perl en el path principal, sino
lo encuentra, lo descarga de la web de CPAN (necesitan internet) lo
descomprime, lo instala y luego borra las carpetas creadas para ejercer
esto. El script es el siguiente:
#!/bin/sh
# Buscar el modulo smaps de perl, sino esta descargarlo, descomprimir he instalar, necesitas tener acceso a Internet.
carpeta="$HOME/Temporal"
if [ $UID -ne 0 ]; then
echo "Debes ejecutarme como Root!!";
exit 1;
fi
perl -MLinux::Smaps -e print 2>/dev/null
if [ "$?" != '0' ]; then
mkdir $carpeta && cd $carpeta && wget http://search.cpan.org/CPAN/ authors/id/O/OP/OPI/Linux- Smaps-0.09.tar.gz && tar xvzf Linux-Smaps-0.09.tar.gz
cd $carpeta/Linux-Smaps*; perl Makefile.PL && make && make install
if [ "$?" == "0" ]; then
echo "Instalacion del Modulo realizada correctamente";
cd $HOME && rm -rf $carpeta;
fi
fi
exit 0;
#!/bin/sh
# Buscar el modulo smaps de perl, sino esta descargarlo, descomprimir he instalar, necesitas tener acceso a Internet.
carpeta="$HOME/Temporal"
if [ $UID -ne 0 ]; then
echo "Debes ejecutarme como Root!!";
exit 1;
fi
perl -MLinux::Smaps -e print 2>/dev/null
if [ "$?" != '0' ]; then
mkdir $carpeta && cd $carpeta && wget http://search.cpan.org/CPAN/
cd $carpeta/Linux-Smaps*; perl Makefile.PL && make && make install
if [ "$?" == "0" ]; then
echo "Instalacion del Modulo realizada correctamente";
cd $HOME && rm -rf $carpeta;
fi
fi
exit 0;
Captura de pantalla donde ejecuto mi script:
No hay comentarios:
Publicar un comentario